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と区別するために、リスト内にグループ化されています。