sicp 习题(1)
Table of Contents
1 1.1 求值
2 1.2 前缀形式转换
(/ (+ 5 4 (- 2 (- 3 (+ 6 (/ 4 5))))) 3 (- 6 2) (- 2 7))
我的做法是从内到外开始写的
3 1.3 求较大的两个数之和
(define (f x y z) (cond ((and (<= x y)(<= x z))(+ y z)) ((and (<= y x)(<= y z)) (+ x z)) (else (+ x y)) ) )
注意必须要加=号,否则当x=y=3, z=6会执行x+y
4 1.4 描述行为
当b大于0 得到- 即为 a-b 否则 a+b
5 1.5 applicative order vs normal order
applicative order: (test 0 (p)) (test 0 (p)) 一直无限循环下去
normal order: (test 0 (p)) (if (= 0 0) 0 (p)) 因为0等于0,所以不会执行(p)