List LISP:部队评估

List LISP:部队评估,list,lisp,quote,List,Lisp,Quote,我使用一个单引号(')将列表名作为输入,但在执行了一些操作之后,我希望实际对其求值,而不是将其视为原子 例如,为了简单起见,我有以下列表: (setf LT '(A B C)) 我有一个名为SEP的函数。要运行该函数,我必须以(SEP'LT)的方式运行它。如您所见,LISP将把LT解释为一个原子,而不是将其作为一个列表进行计算,这不是我想要的 因此,本质上,我希望(SEP'LT)以某种方式真正成为(SEP'(abc)) 无法更改输入格式。任何帮助都将不胜感激。谢谢 如果LT是一个顶级变量,使用

我使用一个单引号(')将列表名作为输入,但在执行了一些操作之后,我希望实际对其求值,而不是将其视为原子

例如,为了简单起见,我有以下列表:

(setf LT '(A B C))
我有一个名为
SEP
的函数。要运行该函数,我必须以
(SEP'LT)
的方式运行它。如您所见,LISP将把
LT
解释为一个原子,而不是将其作为一个列表进行计算,这不是我想要的

因此,本质上,我希望
(SEP'LT)
以某种方式真正成为
(SEP'(abc))


无法更改输入格式。任何帮助都将不胜感激。谢谢

如果
LT
是一个顶级变量,使用
defvar
定义,则可以使用
符号值
获取其值,如下所示:

* (symbol-value 'lt)
(A B C)

* (defun sep (name)
    (assert (symbolp name))
    (let ((value (symbol-value name)))
      ...

非常感谢。这正是我想要的。(顺便说一句,我认为它是
symbolp
而不是
symbol-p
(断言(symbolp名称))
->
(检查类型名称符号)