ANSI Common Lispを読む

quoteオペレータ。

(setf *hoge* 10)  ;=> 10
(quote *hoge*)    ;=> *hoge*
'*hoge*           ;=> *hoge*
*hoge*            ;=> 10
'(1 2 3)          ;=> (1 2 3)
(1 2 3)           ;=> 不正な関数です: 1

曰く、Lispのプログラムはリストとして表現される。
だからリストのリテラルにquoteがいちいち要るのか。


list関数。

(list '(1 2 3) "Hogeee!!" 'sym (+ 1 2 3))
  ;=> ((1 2 3) "Hogeee!!" sym 6)


真偽。

(list t nil () 't 'nil '())
  ;=> (t nil nil t nil nil)
(list)
  ;=> nil

空リストはnilにされる。
偽はnil。真はそれ以外。


carとcdrはひとつの動作を理解してはいても、入れ子にして呼ぶときはやっぱり考え込む。
firstとかthirdとかだけで済むのかなぁ…。