Lisp Coerce 和 Set 函数解释

标签 lisp set quote coerce

我尝试直接对解释执行此操作:

(setf example (coerce "blablabla" 'list))

并且工作正常。事实上 (car example) 返回 #\b

但如果我尝试这样做:

(defun myfun (string) ( (setf example (coerce string 'list))))

(myfun "blablabla") 

我不明白!

我该如何解决?

最佳答案

删除 defunsetf 周围的额外括号:

(defun myfun (string)
  (setf example (coerce string 'list)))

现在你会得到同样的结果。请注意,外括号是有意义的。在 Lisp 中,它要么被引用,要么必须是函数调用。如果第一个元素是一个列表,如本例所示,则它不能是要调用的函数,因此会出现错误。

关于Lisp Coerce 和 Set 函数解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932304/

相关文章:

namespaces - Common Lisp 是 Lisp-n 吗?

lisp - 如何从 ads_name 类型获取 VLAX-OBJECT

scheme - 这段 lisp 代码的 racket 翻译是什么?

C++ std::set 相等性

php - 用单引号包裹一个字符串 PHP

binding - 常见的 lisp 让绑定(bind)

java - Java 集的并集或交集

performance - 在 R 中将集合转换为列索引的有效方法是什么?

common-lisp - 普通 lisp 中的 #'

PHP 之间的区别 echo 'string' .'\n' ;并回显 'string' ."\n";