我如何在 Lisp 中创建一个引用列表,它使用列表中的符号值,而不是符号本身?例如,取两个变量 foo
和 bar
,foo
= "hello"
和 bar
= “世界”
。如何从这两个变量中获取包含 "hello""world"
的列表。我能想到的最好的事情是:
;; This is Emacs Lisp
(let ((foo "hello")
(bar "world"))
(message (prin1-to-string '(foo bar)))
;; prints "(foo bar)"
但这是错误的。执行此操作的正确方法是什么?
最佳答案
没关系,进一步的实验表明答案是(list foo bar)
。
(let ((foo "hello")
(bar "world"))
(message (prin1-to-string (list foo bar)))
;; prints '("hello" "world")'
编辑:实现此目的的另一种方法是使用 `(,foo ,bar)
(let ((foo "hello")
(bar "world"))
(message (prin1-to-string `(,foo ,bar)))
;; prints '("hello" "world")'
关于Lisp:引用符号值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20728980/