如何在lisp中将函数用作变量?

h__*_*h__ 3 lisp common-lisp

我正在尝试编写一个函数来检查列表x中的每个元素是否都具有属性a,所以我写道:

(defun check (a x)
  (if (listp x)
    (eval (cons 'and (mapcar #'a x)))))
Run Code Online (Sandbox Code Playgroud)

但它不起作用.(基本上我想a成为一个函数的名称,比如说blablabla,在check-function的主体中,#'a我想要的是函数blablabla,而不是一个被调用的函数a.)现在上面的代码不起作用了.我认为在Lisp中应该能够插入函数.我该如何解决?

(这是我在lisp上的第一天,所以这可能是一个愚蠢的问题;)而BTW我正在使用Lispworks 6.0个人版.)

Mat*_*ard 6

这里不需要使用sharp-quote语法.它的目的是在可变位置使用函数名,但a它已经是一个变量.只是写a而不是#'a.