习题1.1
10
=> 10
(+ 5 3 4)
=> 12
(- 9 1)
=> 8
(/ 6 2)
=> 3
(+ (* 2 4) (- 4 6))
=> 6
(define a 3)
a
=> 3
(define b (+ a 1))
b
=> 4
(+ 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
(+ 2 (if (> b a) b a))
=> 6
(* (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)))
=> -37/150
习题1.3
;方法1
(define (sum-bigger-two-num1 n1 n2 n3)
(- (+ n1 n2 n3)
(min n1 n2 n3)))
;方法2
(define (sum-bigger-two-num2 n1 n2 n3)
(define (little x y)
(if (< x y) x y))
(- (+ n1 n2 n3)
(little n1
(little n2 n3))))
习题1.4
(define (a-plus-abs-b a b)
((if (< b 0) - +) a b))
略
习题1.5
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
(test 0 (p))
;正则序 完全展开而后规约
(test 0 (p))
(if (= 0 0)
0
(p))
=> 0
;应用序 先求参数值而后应用
(test 0 (p))
(test 0 (p))
(test 0 (p))
...