SICPを読む(2)
p.20近辺まで読み進めた。
lispの文法解説っぽいことが続くので、軽く読み飛ばして、練習問題をこなしてみた。
○ 問題 1.1
> (+ 5 4 3) 12 > (- 9 1) 8 > (/ 6 2) 3 > (+ (* 2 4) (- 4 6)) 6 > (define a 3) a > (define b (+ a 1)) b > (+ a b (* a b)) 19 > (= a b) #f > (if (and (> b a) (< b (* a b))) b a) 4 > (cond ((= a 4) 6) ((= b 4) (+ 6 7 a)) (else 25)) 16 > (* (cond ((> a b) a) ((< a b) b) (else -1)) (+ a 1)) 16
○ 問題 1.2
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) (* 3 (- 6 2) (- 2 7)))
○ 問題 1.3
(define (F x y z) (cond ((< x y) (F y x z)) ((< y z) (F x z y)) (else (+ (* x x) (* y y)))))
値の大きい順にx,y,zが並ぶようにしてから、xとyを使えば良い。
こういった形でソートをすることを思い浮かばなくて、webの解答を見て軽く感動してしまった。
...これはきちんと勉強してみる価値はあるのかも...
続きはまた次回