私はelispの紹介に従っています。非常に最初の章。これが私がhtml本からコピー/貼り付けした2つの例です。両方の形式を評価しました。ここでは、*メッセージ*バッファーからの副作用として、戻り値と出力をコピーして貼り付けます(ミニバッファーの内容をコピーする方法がわかりません)。
最初のフォーム
(let ((zebra 'stripes)
(tiger 'fierce))
(message "One kind of animal has %s and another is %s."
zebra tiger))
*メッセージ*からの出力
One kind of animal has stripes and another is fierce.
#("One kind of animal has stripes and another is fierce." 23 30 (fontified t))
2番目の形式
(let ((birch 3)
pine
fir
(oak 'some))
(message "Here are %d variables with %s, %s and %s value."
birch pine fir oak))
*メッセージ*からの出力は次のとおりです。
Here are 3 variables with nil, nil and some value.
"Here are 3 variables with nil, nil and some value."
最初のフォームがラムダ値を返すのはなぜですか?最初のフォームが特別で、戻り値が文字列にならない理由は何ですか?