Common Lisp:谓词 returns 给函数作为参数时出错

Common Lisp: predicate returns an error when given a function as a parameter

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

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

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

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

从函数命名空间中获取它
(atom (function atom))

作为快捷方式,您可以在其前面加上 #'

(atom #'atom)