LANG:Scheme
IDE:DrScheme
接触Scheme始于维基,尽管当时被这门语言的特性深深折服,但始终缺乏动力去了解它。直到最近对VC++的严重失望,让我重新燃起对Scheme的小小火花。当然,必备书目是SICP。
————————————————————————————————————————————————————————
1.5
(define (p) (p))
(define (test x y)
(if (= x 0)
0
y))
(test 0 p)
(p)始终返回其自身,因此若(p)运行,解释器将停止响应。
当解释器采用正则序求值时,(test 0 p)转换为(if (= 0 0) 0 (p)),其中(p)没有被执行。
而当解释器采用应用序求值时,(test 0 p)无法判断(p)不执行,从而陷入无限循环。
最终结果证实:DrScheme采用应用序求值!(网上版本:所有Scheme解释器都采用应用序求值)