SICP勉強会に参加しています
cotocotoのアナウンス → http://cotocoto.jp/event/25200
lingr → Gauche and SICP 勉強会@関西
ustream → emaame
いつの間にか開始時間が12:30から13:00に変更になった模様。以下に解いた練習問題を貼っておきます。
問題1.3
(define (f1.3 a b c) (cond ((or (< a b c) (< a c b)) (sum-of-squares b c)) ((or (< b a c) (< b c a)) (sum-of-squares a c)) (else (sum-of-squares a b)))) gosh> (map (lambda (x) (apply f1.3 x)) '((1 2 3) (1 3 2) (2 1 3) (2 3 1) (3 1 2) (3 2 1))) (13 13 13 13 13 13)
問題1.7
(define (square x) (* x x )) (define (average x y) (/ (+ x y) 2)) (define (my-sqrt x) (define (sqrt-iter pre-guess guess) (if (good-enough? pre-guess guess) guess (sqrt-iter guess (improve guess)))) (define (improve guess) (average guess (/ x guess))) (define (good-enough? pre-guess guess) ; #?=(list pre-guess guess) (< (abs (- (abs (- (square pre-guess) x)) (abs (- (square guess) x)))) (/ x 1000))) (sqrt-iter x 1.0))
問題1.8
(define (square x) (* x x )) (define (cubert x) (define (cubert-iter pre-guess guess) (if (good-enough? pre-guess guess) guess (cubert-iter guess (improve guess)))) (define (improve guess) (/ (+ (/ x (square guess)) (* 2 guess)) 3)) (define (good-enough? pre-guess guess) ; #?=(list pre-guess guess) (< (abs (- (abs (- (square pre-guess) x)) (abs (- (square guess) x)))) (/ x 1000))) (cubert-iter x 1.0))