我現在在閱讀「Common Lisp:象徵性計算的簡單介紹」。什麼情況下需要讓,而不是讓*?
第5章介紹let
和let*
並討論它們之間的區別,並特別指出,你可能會誤以爲總是使用let*
代替let
,但你不應該有兩個原因這樣做:
let
更容易理解,因爲它意味着沒有依賴關係。- 5.6節說有些情況下
let
是唯一正確的選擇,但它沒有詳細說明。
其實,它說:
有一些情況下是LET的唯一正確的選擇,但我們不會詳談這裏。在風格上,在可能的情況下最好使用LET而不是LET *,因爲這表示任何讀取程序的人都會在正在創建的局部變量之間沒有依賴關係。具有較少依賴性的程序更易於理解。
所以,現在我的問題是:這些情況下let
是唯一正確的選擇是什麼?
還有一些關於'let'很像'lambda'的好處,但'let *'表現得像一堆嵌套lambdas,或者一堆嵌套的let。 –