【发布时间】:2011-08-02 09:37:36
【问题描述】:
这与 SICP 的第 3.5 章有关,其中正在讨论流。这个想法是:
(cons-stream 1 (display 'hey))
不应评估 cons-stream 的第二部分,因此不应打印“hey”。这确实发生了,我得到以下输出:
嘿(1 .#)
所以我的结论是延迟不是作为一种特殊的形式来实现的?还是我做错了什么?我使用以下实现:
(define (cons-stream a b)
(cons a (delay b)))
延迟是默认的 R5RS 实现。这是实施中的错误,还是我没有正确执行或理解它?
【问题讨论】: