在Exercise 30.1.1 of HtDP中,我开始使用local
,然后修改它以使用lambda
来回答问题。本地vs lambda的习惯用法?
(define (add-to-each2 accu a-list)
(cond
[(empty? a-list) empty]
[else (local ((define s (+ accu (first a-list))))
(cons s (add-to-each2 s (rest a-list))))]))
和
(define (add-to-each5 accu a-list)
(cond
[(empty? a-list) empty]
[else (cons ((lambda (x y)
(first (map + (list (first y))
(list x)))) accu a-list)
(add-to-each5 (+ accu (first a-list))(rest a-list)))]))
在这种特定情况下,对我来说,local
版本更容易阅读。在有些情况下,lambda
版本更受欢迎?谢谢。
谢谢亚当,这是非常有见地的。我没有介绍让我们介绍的部分,但是我看到了这一步。最好的祝愿。 – Greenhorn 2011-01-19 15:52:31