sicp 习题(1)

sicp 习题(1)

sicp 习题(1)

Table of Contents

  • 1. 1.1 求值
  • 2. 1.2 前缀形式转换
  • 3. 1.3 求较大的两个数之和
  • 4. 1.4 描述行为
  • 5. 1.5 applicative order vs normal order

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)

Author: lexnewgate

Created: 2016-01-02 周六 01:58

Emacs 24.5.1 (Org mode 8.2.10)

Validate

你可能感兴趣的:(sicp 习题(1))