使用mapconcat连接包含变量的列表

时间:2014-06-12 15:20:27

标签: elisp string-concatenation quoting

我正在尝试使用mapconcat加入字符串列表,但无法弄清楚如何将变量包含在列表元素之一中。这就是我想要的:

(mapconcat #'identity '("" "path" "to" "someplace") "/")
=> "/path/to/someplace"

但是当我尝试包含变量时:

(let ((path "someplace"))
  (mapconcat #'identity '("" "path" "to" path) "/"))
=> Wrong type argument: sequencep, path

这也不起作用:

(let ((path "someplace"))
  (mapconcat #'(lambda (x) (format "%s" x)) '("" "path" "to" path) "/"))
=> "/path/to/path"

有谁可以指出我在这里缺少的东西?

1 个答案:

答案 0 :(得分:7)

您使用'引用列表,这意味着列表中包含任何符号作为符号,而不是作为变量取消引用。

您可以使用list功能:

(list "" "path" "to" path)

或使用反引号和逗号来强制评估其中一个列表元素:

`("" "path" "to" ,path)
相关问题