次: List-related Predicates, 前: Cons Cells, 上: Lists
コンスセルは1対の箱で図示できます。
最初の箱はcarを表し、2番目の箱はcdrを表します。
つぎは、2つのコンスセルから成る
2要素のリスト(tulip lily)を図示したものです。
--------------- ---------------
| car | cdr | | car | cdr |
| tulip | o---------->| lily | nil |
| | | | | |
--------------- ---------------
各1対の箱がコンスセルを表します。
各箱は、Lispオブジェクトを『参照する』、『指す』、『含む』のです。
(これらの用語は同義語。)
最初のコンスセルのcarを表す最初の箱は、
シンボルtulipを含みます。
最初のコンスセルのcdr箱から2番目のコンスセルへ向かう矢印は、
最初のコンスセルのcdrが2番目のコンスセルであることを表します。
同じリストは、つぎのような別の箱記法でも図示できます。
--- --- --- ---
| | |--> | | |--> nil
--- --- --- ---
| |
| |
--> tulip --> lily
つぎは、より複雑で、最初の要素が2要素リストであるような 3要素リストを図示したものです。
--- --- --- --- --- ---
| | |--> | | |--> | | |--> nil
--- --- --- --- --- ---
| | |
| | |
| --> oak --> maple
|
| --- --- --- ---
--> | | |--> | | |--> nil
--- --- --- ---
| |
| |
--> pine --> needles
同じリストを最初の箱記法で表現するとつぎのようになります。
-------------- -------------- --------------
| car | cdr | | car | cdr | | car | cdr |
| o | o------->| oak | o------->| maple | nil |
| | | | | | | | | |
-- | --------- -------------- --------------
|
|
| -------------- ----------------
| | car | cdr | | car | cdr |
------>| pine | o------->| needles | nil |
| | | | | |
-------------- ----------------
コンスセルとリストの入力構文と表示表現、および、 『箱と矢印』によるリストの図示については、See Cons Cell Type