Common Lisp:谓词在给定函数作为参数时返回错误

时间:2015-03-13 15:39:55

标签: common-lisp

刚开始玩Common Lisp(使用L(λ)THW),并输入(atom atom)期望得到nil。但相反,我得到了错误

错误[!]:变量“ATOM”未绑定。

同样的结果是,当我尝试将任何函数“提供”给任何谓词时,据我所知。为什么会这样?具体来说,不是函数(或表达式)只是列表吗?

1 个答案:

答案 0 :(得分:3)

这是因为Common Lisp是一个Lisp-2。这意味着变量和函数驻留在不同的命名空间中。要将函数用作值,必须使用函数function从函数名称空间中获取它:

(atom (function atom))

作为此快捷方式,您可以在#'之前添加前缀:

(atom #'atom)