的长度
(length (car '('(0)'(1 2 3)'(6 7))))
正在展示2同时
(length (car '((0)(1 2 3)(6 7))))
正确显示1.那么第一个表达式实际代表什么?
答案 0 :(得分:7)
引号字符'
是一个读者宏。 'anything
扩展为(quote anything)
。所以第一个表达式是:
(length (car (quote ((quote (0))
(quote (1 2 3))
(quote (6 7)))
第一个quote
导致参数按字面处理。这意味着其中的quote
表达式只是恰好以符号quote
开头的列表。
因此该列表的CAR是子列表(quote (0))
。它包含2个元素:符号quote
和列表(0)
。
答案 1 :(得分:1)
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)))