その3。少しずつわかってきた気がするけどまだ先長い。
制御構造
- cond
- if ~ else if ~ else if ~と同じ。
- zerop
- 引数がゼロかどうかをチェックし、ゼロならtを返す。
サンプル
(defun how-many (count) (cond ((zerop count) "no") ((= count 1) "one") ((= count 2) "two") (t "many"))) (how-many 1) "one" (how-many 2) "two" (how-many 5) "many"
リスト
- スタックのような概念らしい。
- リストはヘッドとテールの2つの部分からなるデータ構造。
- ヘッドは「リストの先頭」テールは「リストの残り」という意味。ヘッドを取得するにはcar関数、テールを取得するにはcdr関数を使う。
リストを作るには、cons関数にヘッドとテールを渡すか、listに複数の要素を渡してやるとよいらしい。こんな感じ。
(cons head tail) (list 2 3 4 5) (cons 1 list(2 3 4 5))
一番下の行にcarすると1, cdrすると(2 3 4 5)が返ってくる。