我写了这个函数
(defun test () (let ((str1 "foo") (str2 "bar")) (loop for s in '(str1 str2) do (message s))))
但它不起作用.Elisp Backtrace消息是:
调试器输入 - Lisp错误:(错误的类型参数stringp str1)
我怎样才能使它工作?
PS:以下修改版本运行完美,但我需要原始版本
(defun test1 () (loop for s in '("asdf" "fdsa") do (message s)))
Svante.. 16
的quote
操作者(对于该撇号是语法糖)指其参数不被评估,即,(quote (str1 str2))
返回两个列表的符号.请list
改用:(list str1 str2)
.
的quote
操作者(对于该撇号是语法糖)指其参数不被评估,即,(quote (str1 str2))
返回两个列表的符号.请list
改用:(list str1 str2)
.
构建值列表:
(defun test () (let ((str1 "foo") (str2 "bar")) (loop for s in (list str1 str2) do (message s))))