わかるか!!★★★こういうのがむずかしいと感じる。(6回目)リストとセルそれはいいんだけど、リストもセルなのである。3))【C-j】tこれはどういうことだろうか。リストは、実はセルの一種である。CDRにnilが来るセルがリストである。・nilをCDR部に持つセル・nilをCDR部に持つセルを、CDR部に持つセル・nilをCDR部に持つセルを、CDR部に持つセルを、CDR部に持つセルはリストになる。面白くなってきたと思いませんか。いう「数珠つなぎ」がリスト構造、およびLispの妙味である。上の構造をより理解するには、それぞれのリストのCARとCDRを取ってみるといい。2)のCARはリストではない。1は1というアトムである。3)のCARは1というアトムである。3)というリストである。CARとCDRは「最初の要素」と、「それ以外全部」という意味である。3)というリストをconsするとリストになる。3)だから、consは「リストの最初の要素の前に、別のものをくっつける関数」とも言えるのである。(『リスト遊び』によると、Lispの人は「次の会議の最初に、この話題を入れ込んで」という意味で、「次の会議に、この話題をコンスして」と言うそうだ。)1というアトムと、(1)という一つの要素を持つリストの違いはなんだろうか。それも、CARとCDRを取ってみると分かる。先に(1)の方を試してみる。'(1))【C-j】nilこのように、(1)はCARがアトム1を、CDRがnilを差すセルである。それはいいんだけど、アトムにcar関数を作用させるとエラーになる。1))セルやリストを調べるべきcarにアトムを渡したので、「間違った型の引数」というエラーが返された。2)のcarを取ると1というアトムが返る。2)のcdrを取ると(2)というリストが返る。(1)のcarを取ると1というアトムが返る。(1)のcdrを取るとnilが返る。リストは末尾にnilが来るセルである。それはいいんだけど(ぼくの文章はこのフレーズが多用されているな~)、nilはcarもcdrもnilなのである。nil)【C-j】nilまあ、「空リストもリストである」、「空リストの先頭部分は空リストである」、「リストの末尾は空リストを指している」ということであろうか。★★★こういうのがむずかしいと感じる。3)というのは、CARが2、CDRが3のセルであって、リストではない。3)もリストではない。ところが!これらのセルlistpに掛けてみる。3))【C-j】tどっちもtを返すのである。★★★こういうのがむずかしいと感じる。2)のような末尾にnilおないセルをドットリストと呼ぶそうだ。4)このように、リスト(やセル)をリスト(やセル)の要素に持つことが出来る。関数のまとめ関数ぐらいまとめておく。3)名前、意味以外の列見出しは、そういう引数を関数に渡すという意味で、それ以下のセルは戻り値を示す。