';((1 2)(3 4))和';lisp中的(';(12)';(34))?

';((1 2)(3 4))和';lisp中的(';(12)';(34))?,lisp,common-lisp,Lisp,Common Lisp,长度 (length (car '('(0)'(1 2 3)'(6 7)))) 在第二场比赛中,同样的 (length (car '((0)(1 2 3)(6 7)))) 正确显示的是1。那么第一个表达式实际上代表什么呢 引号字符”是一个读卡器宏“任何内容”扩展为(引用任何内容)。因此,第一个表达式是以下的缩写: (length (car (quote ((quote (0)) (quote (1 2 3))

长度

(length (car '('(0)'(1 2 3)'(6 7))))
在第二场比赛中,同样的

(length (car '((0)(1 2 3)(6 7))))

正确显示的是1。那么第一个表达式实际上代表什么呢

引号字符
是一个读卡器宏
“任何内容”
扩展为
(引用任何内容)
。因此,第一个表达式是以下的缩写:

(length (car (quote ((quote (0))
                     (quote (1 2 3))
                     (quote (6 7)))
第一个
引号
使参数按字面意思处理。这意味着其中的
quote
表达式只是碰巧以符号
quote
开头的列表

因此,该列表的汽车是子列表
(引号(0))
。它包含两个元素:符号
quote
和列表
(0)

的问题并不完全相同,但它的答案确实回答了这个问题。
CL-USER 8 > '((0)(1 2 3)(6 7))
((0)
 (1 2 3)
 (6 7))

CL-USER 9 > '('(0)'(1 2 3)'(6 7))
((QUOTE (0))
 (QUOTE (1 2 3))
 (QUOTE (6 7)))