假设我设置了一个这样的变量:
(setq var '((:item1 "stringA") (:item2 "stringB")))
(这有效)
现在我希望“stringA”是一个条件,如下所示:
(setq var '((:item1 (if (> 6 (string-to-number (format-time-string "%u")))
"stringA"
"stringC"))
(:item2 "stringB") ))
这行不通,可能是因为引用运算符(或者函数?)的问题。应该怎么写才能让它正常工作?
引用列表中的内容不会被求值。您必须调用函数来动态构造列表:
或者您可以使用反引号来指定列表中应为文字并进行评估的部分。
在反引号表达式中,逗号(看起来像倒置的引号)标记应该评估的表达式。