Emacs/Common Lisp:引用变量的值

3

我需要一个变量的引用值。

举个例子,假设我们有变量qweasd

(setq qwe '(1 2 3)) ;; qwe is set to (1 2 3)
(setq asd ''(1 2 3)) ;; asd is set to '(1 2 3)

我的问题是:如何通过使用qwe来获得与asd相同的值?
我是这样做的:
(setq asd `(quote ,qwe))
;; Now asd is '(1 2 3)

但是对我来说,它看起来又丑又不好。如果没有更好的方法,我会感到惊讶。


1
就我个人而言,你编写的代码完全符合你的要求,看起来既不难看也不糟糕。相反,它非常清楚地显示了“qwe”的评估值。你对它有什么不喜欢的呢? - phils
@phils,嗯,我总是试图避免使用准引用,因为它们似乎更难读。我喜欢Vatine提出的(list 'quote qwe),在我看来,它看起来更好,更易于理解。 - qwe
1个回答

5
你正在寻找的是:
(setq asd `',qwe)

事实上,它等同于等价于
(setq asd `(quote ,qwe))

3
确实,(setq asd (list 'quote qwe)) 可以翻译为“将变量asd设为一个由两个元素构成的列表,其中第一个元素是引用符号(quote),第二个元素是符号qwe”。 - Vatine
谢谢,Vatine,你的回答正是我在寻找的! :) - qwe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接