Next: Uninitialized let Variables, Previous: Parts of let Expression, Up: let [Contents][Index]
let Expression以下は2つの変数zebraとtigerに初期値を与える式を作成します。このlet式のbodyはmessage関数を呼び出すリストです。
(let ((zebra "stripes")
(tiger "fierce"))
(message "One kind of animal has %s and another is %s."
zebra tiger))
ここでのvarlistは((zebra "stripes") (tiger "fierce"))です。
2つの変数とはzebraとtigerです。変数はそれぞれ2要素リストの1つ目の要素、2つ目の要素がそれらの変数の値となります。このvarlistでEmacsは変数zebraに値"stripes"9、変数tigerに値"fierce"をバインドします。この例ではどちらの値も文字列です。値には同じように別のリストやシンボルも指定できます。変数を保持するリストの後にletのbodyが続きます。この例でのbodyはエコーエリアに文字列をプリントするmessage関数を使用するリストです。
この例の最後のカッコにカーソルを置いてC-x C-eとタイプする通常の方法によって評価できます。評価するとエコーエリアに以下が表示されるでしょう:
"One kind of animal has stripes and another is fierce."
これまで見てきたとおり、messageは1つ目の引数から‘%s’以外をプリントします。この例では1つ目の‘%s’の箇所に変数zebraの値、2つ目の‘%s’の箇所に変数tigerの値がプリントされます。
Guns, Germs, and SteelのJared Diamondによれば、“… 縞馬(zebra)は年をとるにつれあり得ないほど危険になる”そうですが、そこでは虎(tiger)ほど獰猛(fierce)になる訳ではないと主張されています(1997, W. W. Norton and Co., ISBN 0-393-03894-2, page 171)。