let 文における未初期化変数
¶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) の一部となっています。同様に、birch は数値 3
に束縛されており、その数値を含むリストの中に存在しています。(数値はそれ自体として評価されるため、クォートする必要はありません。また、メッセージ内では数値は
‘%s’ ではなく ‘%d’ として出力されます。)これら4つの変数はまとめてリストに入れられ、let の本体から区切られています。