谁能给解释一下 SICP 习题1.5

umeit 2011-08-11
应用序 会先对运算符 test 和运算单元 0 和 (p) 进行求值,在求值运算单元 (p) 时就会出现死循环。
(test 0 (p))


正则序 是先不求出运算对象的值,而是直到实际需要它的值时才去运算求值。应当先将运算对象表达式 (p) 直接代换形式参数
(if (= 0 0) 0 (p))

这时条件表达式 if 的求值为 0,所以 (p) 不被要求做运算,也就不可能有死循环了。
Global site tag (gtag.js) - Google Analytics