【发布时间】:2013-12-22 11:39:24
【问题描述】:
如何在 Lisp 中创建一个引用列表,该列表使用列表中的符号值,而不是符号本身?例如,取两个变量foo 和bar,foo = "hello" 和bar = "world"。如何从这两个变量中获取包含 "hello" "world" 的列表。我能想到的最好的事情是:
;; This is Emacs Lisp
(let ((foo "hello")
(bar "world"))
(message (prin1-to-string '(foo bar)))
;; prints "(foo bar)"
但这是错误的。这样做的正确方法是什么?
【问题讨论】:
-
在 Common Lisp 中,也是:
(let (...) (msg `(foo ,foo bar ,bar)))。自动翻译成(let (...) (msg (list 'foo foo 'bar bar)))。