我如何告诉Lisp我想要将列表评估为"列表",而不是"作为一个函数"?
(let ((x 500)) '(x . nil))
Run Code Online (Sandbox Code Playgroud)
当我输入它时,它返回
(X)
Run Code Online (Sandbox Code Playgroud)
好的,它没有评估列表(我想要的).但它并没有将变量x替换为其值.
'e完全引用表达式e,无法知道要评估哪些子表达式.如果使用反引号而不是引号,则可以使用逗号取消引用子表达式.
在你的例子中,你可以做到
(let ((x 500)) `(,x . nil))
Run Code Online (Sandbox Code Playgroud)
这相当于'(500 . nil)因为x没有引用.
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |