刚开始玩Common Lisp(使用L(λ)THW),并输入(atom atom)
期望得到nil
。但相反,我得到了错误
错误[!]:变量“ATOM”未绑定。
同样的结果是,当我尝试将任何函数“提供”给任何谓词时,据我所知。为什么会这样?具体来说,不是函数(或表达式)只是列表吗?
答案 0 :(得分:3)
这是因为Common Lisp是一个Lisp-2。这意味着变量和函数驻留在不同的命名空间中。要将函数用作值,必须使用函数function
从函数名称空间中获取它:
(atom (function atom))
作为此快捷方式,您可以在#'
之前添加前缀:
(atom #'atom)