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 00 (p)),其中(p)没有被执行。

而当解释器采用应用序求值时,(test 0 p)无法判断(p)不执行,从而陷入无限循环。

最终结果证实:DrScheme采用应用序求值!(网上版本:所有Scheme解释器都采用应用序求值)

posted on 2012-10-10 17:00  CodingPenguin  阅读(100)  评论(0编辑  收藏  举报