我尝试直接解释:
(setf example (coerce "blablabla" 'list))
并且工作正常。实际上(car example)
返回#\ b
但如果我试试这个:
(defun myfun (string) ( (setf example (coerce string 'list))))
(myfun "blablabla")
我不一样!
我该如何解决?
答案 0 :(得分:2)
在defun中围绕setf取出额外的括号:
(defun myfun (string)
(setf example (coerce string 'list)))
现在你会得到同样的结果。请注意,外括号具有含义。在Lisp中,要么引用它,要么必须是函数调用。如果第一个元素是一个列表,就像在这种情况下一样,它就不是一个函数来调用,因此就是错误。