1.5¶
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
;; (test 0 (p))
;; 如果是应用序求值, 就会先计算参数的值(此处是 (p) 的值); 那么就会进入对 (p) 的反复求值, 程序僵住;
;; 反之如果是正则序求值会先进入 (if ...) 展开, 恰好 x=0, 得出最终值 0.
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
;; (test 0 (p))
;; 如果是应用序求值, 就会先计算参数的值(此处是 (p) 的值); 那么就会进入对 (p) 的反复求值, 程序僵住;
;; 反之如果是正则序求值会先进入 (if ...) 展开, 恰好 x=0, 得出最终值 0.