我尝试直接对解释执行此操作:
(setf example (coerce "blablabla" 'list))
并且工作正常。事实上 (car example)
返回 #\b
但如果我尝试这样做:
(defun myfun (string) ( (setf example (coerce string 'list))))
(myfun "blablabla")
我不明白!
我该如何解决?
最佳答案
删除 defun
中 setf
周围的额外括号:
(defun myfun (string)
(setf example (coerce string 'list)))
现在你会得到同样的结果。请注意,外括号是有意义的。在 Lisp 中,它要么被引用,要么必须是函数调用。如果第一个元素是一个列表,如本例所示,则它不能是要调用的函数,因此会出现错误。
关于Lisp Coerce 和 Set 函数解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932304/