我正在尝试使用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"
有谁可以指出我在这里缺少的东西?
答案 0 :(得分:7)
您使用'
引用列表,这意味着列表中包含任何符号作为符号,而不是作为变量取消引用。
您可以使用list
功能:
(list "" "path" "to" path)
或使用反引号和逗号来强制评估其中一个列表元素:
`("" "path" "to" ,path)