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名称))
->(检查类型名称符号)
。