variables - 如何访问列表中变量的值?

标签 variables lisp elisp

我是 ELisp 的新手,我无法设置变量值以便稍后访问。我读了the documentation on accessing variable values并尝试了 this thread 中的答案,但我仍然收到 Wrong type argument: char-or-string-p

这是我的 *scratch* Emacs 缓冲区的输出,它运行代码并在出现任何副作用后将其插入:

(defvar my-var "var"  "Some documentation")
my-var

my-var
"var"

(symbol-value 'my-var)
"var"

我可以迭代一个由值作为文字的列表:

(dolist (v '("var"))
  (insert v))
varnil

但是每一次将值作为变量迭代的尝试都失败了,并出现相同的错误 Wrong type argument: char-or-string-p:

(dolist (v '(my-var))
  (insert v))

(dolist (v '((format "%S" my-var)))
  (insert v))

(dolist (v '((symbol-value 'my-var)))
  (insert v))

如何迭代由变量值组成的列表?

最佳答案

您需要评估您的变量:

(dolist (v (list my-var))
  (insert v))

或者自己获取值:

(dolist (v (list 'my-var))
  (insert (symbol-value v)))

如果你想混合变量和文字,那么使用第一种方法:

(defvar my-var "var"  "Some documentation")

(dolist (d (list my-var
                 "other-var"))
  (insert d))

另见 When to use ' (or quote) in Lisp?

关于variables - 如何访问列表中变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116376/

相关文章:

php - MySQL 查询功能似乎阻止 PHP 变量在表名中使用

windows - 使用for循环和变量替换批量分割文件路径

平方根的 Scheme Lisp 连分数

scheme - 计算列表和子列表的元素

Emacs -- 测试以确定正在运行的钩子(Hook)类型

Java如何将从字符串数组返回的随机项保存为变量?

css - 如何在 CSS 中将颜色定义为变量?

lisp - 生成列表的排列

emacs - 避免字体锁定干扰评论内

emacs - 如何关闭特定主要模式的电子缩进模式?