*/-->
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)
时间: 2024-10-09 20:08:16