这是我正在创作的一些doco,但是......
我不确定点是什么'。'扩展和模式之间是 虽然在下面:
示例:将*.mmd
与markdown-mode
相关联:
(setq auto-mode-alist (cons '("\\.mmd$" . markdown-mode) auto-mode-alist))
基本上有一个alist(关联列表/哈希表)被调用
auto-mode-alist
。点扩展 - >到模式。扩展看起来
喜欢它是一个正则表达式。
cons
是一个将元素预先挂起到列表
setq
表示设置为quoted(为您引用auto-mode-list),否则为
而不是分配给符号auto-mode-alist,你将分配给
评估该符号的结果......不是你想要的;)
答案 0 :(得分:13)
列表由Lisp中的小块构成。点符号表示那些较小的部分。
(a b c d e) ; a normal list
(a . (b . (c . (d . (e . nil))))) ; the same list in primitive form
(a . b)
语法形式的项称为 cons小区; a
是汽车,b
是 cdr 。 (那些最后的术语来自用于将它们存储在小型机上的寄存器名称Lisp最初开发时,并没有其他意义。 cons 是“构造”的缩写。) cons cell < / em> s使用cons
函数创建。请注意,前缀到列表的行为自然会超出列表的内部格式,如上所示,并且将附加到带有cons
的列表将不会做出可能天真的事情期望的。
Alist 是历史惯例的简单 cons cell 而不是完整列表,最初是为了速度。
答案 1 :(得分:11)
在lisp中,在低级别,您可以使用简单值(数字或原子)或点对,或 cons cells 。 (让我们忽略像矢量这样的现代东西......)。除此之外,还构建了列表(a b c)
等数据结构。
alist 或关联列表,是一个普通列表,其中每个元素本身(a
,b
et.c.)是一个点缀对。例如:
((foo . 10) (bar . 20))
您可以使用assq
或assoc
搜索一个列表,然后返回一对。您可以分别应用car
和cdr
来获取该对的左侧或右侧部分。
上面简单地构造了一个普通列表,以便(a b c)
表示为(a . (b . (c . nil)))
通常,人们不必知道这一点来理解alist:s,但内部打印机制有时会被抛出的。具体而言,((foo . nil) (bar . 20))
通常打印为((foo) (bar . 20))
。
答案 2 :(得分:10)
它的虚线对符号。有关详细信息,请参阅this link。
答案 3 :(得分:1)
This也是一个很好的描述,其实质是:
虚线列表是最后一个缺点,其cdr 没有nil, 而是一些其他数据对象(也不是缺点,或者是 首先提到的缺点不是列表中的最后一个缺点。)
这允许例如指定最后一个缺点是符号的列表,然后该符号可以指向另一个列表,在运行时更改等等。