在学习cons,cdr并且car处理列表我尝试以下操作:
(cadr '('(1) '(2)))
'(2)
Run Code Online (Sandbox Code Playgroud)
它按预期给出列表中的第二项.以下给出:
(cdadr '('(1) '(2)))
((2))
Run Code Online (Sandbox Code Playgroud)
数据如何与代码协调一致,仍然没有给出错误?
这是如何评估的?
cdr on'(2)应该给nil,这是.为什么不上面?
[我是clisp和stackoverflow的新手,所以请原谅我.]
quote是一个特殊的运算符,它返回单个未评估的参数.表格(quote ...)可以缩写'为'....由于'是由读者处理的形式
'('(1) '(2)))
Run Code Online (Sandbox Code Playgroud)
实际上读的是一样的
(quote ((quote (1)) (quote (2)))
Run Code Online (Sandbox Code Playgroud)
最外层的应用程序quote的参数((quote (1)) (quote (2)))返回参数.这个cadr论点就是清单
(quote (2))
Run Code Online (Sandbox Code Playgroud)
其第一个元素是符号quote,第二个元素是单个元素的列表2.