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)

なるほどね。まあわかったよたぶん。