在Drscheme使用stream的问题

阅读更多
这几天的sicp第三章快结束了,可是stream这边,我始终无法在drscheme中使用,因此在google大神的帮助下,找到了解决方法;

原文在这里:
http://schemewiki.org/view/Cookbook/MiscSICP

要在drscheme中使用stream,必须在代码中加入下面这部分:
(require (lib "defmacro.ss"))

; cons-stream : obj stream ->  stream
;   construct a stream whose first element is obj and whose tail is stream
;   [cons-stream is a special form]
(define-macro cons-stream
  (lambda (car cdr)
    `(cons ,car (delay ,cdr))))


为什么要用define-macro不是很懂,我直接用define的话下面使用cons-stream构造无限流时就会报错,忘达人解释一下.

PS:知道原因了,哈哈 原来是:

引用
定义宏可以自定义新的语法结构, 主要是可以防止求值

也就是 惰性求值..

你可能感兴趣的:(Google)