在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