';((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)))