Previous: Sample let Expression, Up: let [Contents][Index]
let
Statement以下の式で示すように、let
ステートメント内で特定の初期値にバインドしなかった変数には、初期値として自動的にnil
がバインドされます:
(let ((birch 3) pine fir (oak 'some)) (message "Here are %d variables with %s, %s, and %s value." birch pine fir oak))
ここでのvarlistは((birch 3) pine fir (oak 'some))
です。
この式を通常の方法で評価すればエコーエリアに以下が表示されるでしょう:
"Here are 3 variables with nil, nil, and some value."
この例においてEmacsはシンボルbirch
に数値の3、シンボルpine
とfir
にnil
、シンボルoak
に値some
をバインドしています。
let
の最初の部分では変数pine
とfir
はカッコで括られていない単独のアトムであることに注意してください。空のリストであるnil
にバインドされるのは、これが理由です。しかしリスト(oak
'some)
のoak
はsome
にバインドされます。同じように数値の3を含むリストによってbirch
は数値3にバインドされます(数値はその数値自体に評価されるのでクォートする必要はなく、更にメッセージ内で‘%s’ではなく‘%d’を用いて数値をプリントしている)。4つの変数はlet
のbodyと区別するために、リスト内にグループ化されています。