Lisp勉強中(3) 評価しないリスト
Lispは、()の中にスペース区切りで要素を並べて書くのが基本。そうした書いたものをリストと呼ぶ。で、リストの最初の要素が関数名、2番目以降の要素を引数として関数を呼び出し、結果を得る。
つまり普通にリストを書くと、最初の要素が関数名と見なされて評価されてしまう。だから、このままじゃホントにリスト構造なもの(値を列挙したようなデータ)を書けない。
(1 2 3 4) =>エラー「不正な関数です : 1」
1, 2, 3, 4というデータが入ったリストを書きたいだけなのに、最初の要素「1」が関数名だと思われてしまう。
quote
リストの中身を評価されたくない場合は、quoteを使う。
(quote (1 2 3 4)) =>(1 2 3 4)
リストがそのまま返ってきた。このquoteはよく使うらしいので短く書ける。
'(1 2 3 4) =>(1 2 3 4)
なるほどね。まあわかったよたぶん。