Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我使用单引号 (') 将列表名称作为输入,但是在执行了一些操作之后,我想实际评估它而不是将其视为原子。
例如,为了简单起见,我有以下列表:
(setf LT '(A B C))
我有一个名为SEP. 要运行该功能,我必须将其作为(SEP 'LT). 如您所见,LISP 将解释LT为原子而不是将其评估为列表,这不是我想要的。
SEP
(SEP 'LT)
LT
所以本质上,我想(SEP 'LT)真正成为(SEP '(A B C))某种方式。
(SEP '(A B C))
输入格式无法更改。任何帮助,将不胜感激。谢谢!
如果LT是一个顶级变量,用 定义defvar,那么你可以这样得到它的值symbol-value:
defvar
symbol-value
* (symbol-value 'lt) (A B C) * (defun sep (name) (assert (symbolp name)) (let ((value (symbol-value name))) ...