(rontolisp) docs
← 特殊形式

let

(let ((var init)...) body...)

ローカル変数の束縛を確立します。各 init は(周囲のスコープで)評価され、body の実行中はそれぞれの var に束縛されます。そのため束縛は逐次的ではなく並列です。body のフォームは順に評価され、最後のフォームの値が返されます。本体が空の場合、結果は nil です。束縛は変数の束縛のみで、Lisp-2 に従い関数名前空間を覆い隠すことはありません。したがって let で束縛された car は関数 car の呼び出しに影響しません。

varスペシャル として宣言された変数(defvar/defparameter または (declaim (special ...)) による)を指す場合、その束縛は ダイナミック です。すなわち body 中に呼ばれた任意の関数からも見え(レキシカルにネストしたコードだけではなく)、body の脱出時に復元されます。スペシャルでない通常の名前は従来どおりレキシカルに束縛されます。実行時に計算されるスペシャル束縛のリストについては progv も参照してください。