let ¶let という式は Lisp の特殊な形式であり、ほとんどの関数定義で使用する必要があります。
let
は、Lispインタプリタが変数を、関数の一部ではない同名の変数と混同しないように、シンボルを値に紐付けたりバインドしたりするために使用されます。
letという特殊形式がなぜ必要なのかを理解するために、「その家は塗り替えが必要だ」という文のように、普段「その家」と呼んでいる自宅を持っている状況を考えてみてください。友人を訪ねている際、ホストが「その家」と言った場合、それはあなたの家ではなく彼の家、つまり別の家を指している可能性が高いでしょう。
友人が自分の家のことを指しているのに、あなたが自分の家のことを指していると思っている場合、混乱が生じるかもしれません。Lispにおいても、ある関数内で使用される変数が、別の関数内で使用される変数と同じ名前であり、かつその2つが同じ値を指す意図ではない場合に、同様のことが起こり得ます。let 特殊形式は、こうした混乱を防ぎます。