构建列表

cons必须有一个要附加的列表。11 你不能从绝对的空白开始。如果你正在构建一个列表,你需要至少在开头提供一个空列表。以下是一系列的cons表达式,用于构建一系列花的列表。如果你在GNU Emacs中的Info中阅读这个,你可以按照通常的方式评估每个表达式;值将在这个文本中以‘’打印出来,你可以将其解读为“评估为”。

(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后面跟着空列表的列表。正如你所见,空列表在构建的列表中没有显示。因为空列表中没有任何内容,通常来说,空列表是不可见的。

在第二个例子中,(cons 'daisy '(buttercup))通过将daisy放在buttercup前面构建了一个新的两元素列表;第三个例子通过将violet放在daisybuttercup前面构建了一个三元素列表。


Footnotes

(11)

实际上,你可以将元素cons到原子上以生成一个点对。这里不讨论点对;参见Dotted Pair Notation in The GNU Emacs Lisp Reference Manual