cons には、結合先となるリストが必要です。13
全く何もない状態から始めることはできません。リストを構築する場合、少なくとも空のリストを最初に用意する必要があります。以下に、花のリストを構築していく一連の
cons 式を示します。GNU Emacs の Info
でこれを読んでいる場合は、各式を通常の方法で評価できます。その値は、このテキスト内の ‘⇒’ の後に表示されており、これを “evaluates to”
と読み替えることができます。
(cons 'buttercup ())
⇒ (buttercup)
(cons 'daisy '(buttercup))
⇒ (daisy buttercup)
(cons 'violet '(daisy buttercup))
⇒ (violet daisy buttercup)
(cons 'rose '(violet daisy buttercup))
⇒ (rose violet daisy buttercup)
最初の例では、空のリストは () として表示され、buttercup
に続いて空のリストが並ぶリストが構築されます。ご覧の通り、構築されたリストの中に空のリストは表示されていません。表示されているのは (buttercup)
だけです。空のリストには中身が何もないため、リストの要素としてカウントされません。一般的に、空のリストは不可視です。
2番目の例では、(cons 'daisy '(buttercup)) は buttercup の前に daisy
を挿入することで、2つの要素からなる新しいリストを構築します。そして3番目の例では、daisy と
buttercup の前に violet
を挿入することで、3つの要素からなるリストを構築します。
実際には、要素をアトムに cons
することでドットペアを生成できます。ドットペアについてはここでは扱いません。The GNU Emacs Lisp
Reference Manual の ドットペア表記
を参照してください。