【发布时间】:2013-11-10 17:21:23
【问题描述】:
我正在复习我的球拍知识,并遇到了这个streams in racket 出色的帖子。我的问题是关于这个片段:
(define powers-of-two
(letrec ([f (lambda (x) (cons x (lambda () (f (* x 2)))))])
(lambda () (f 2))))
我理解“内部 lambdas”的原因,但为什么 OP 对整个函数使用 lambda?难道不能像这样有效地完成吗?
(define (powers-of-two)
(letrec ([f (lambda (x) (cons x (lambda () (f (* x 2)))))])
(f 2)))
我进行了实验,没有发现任何区别。我的问题是,这只是风格问题,还是出于某种原因,前者更可取。
【问题讨论】: