【发布时间】:2013-11-15 06:16:26
【问题描述】:
我正在尝试查看在函数中使用 eval 之类的东西时数据与代码替换的工作原理,该函数允许我传递任何打印命令,如 print princ 等和一些文本,它使用它输出中的命令:
(defun print-test (fn text)
(eval '(fn 'text)))
我尝试了各种方法,但无法让它运行。我也试过了:
(defun print-test (fn text)
(eval ('fn 'text)))
..和其他变体。所以我显然错过了一些东西。我希望能够做到这一点:
(print-test 'princ 'some-text)
我通常会收到错误 fn is undefined。但由于我是实时评估代码,我认为它可以从我的输入中得到fn?
我意识到还有其他方法可以做到这一点,比如传入一个实际的函数对象,如 #'princ,但我很好奇 eval 机制如何用于动态生成代码。
【问题讨论】:
标签: lisp common-lisp