如何解决Elisp:读取常量
读取常量:hi
时,
我收到错误:
test: 错误的类型参数:char-or-string-p,:hi
(defun test ()
:hi "greet"
(insert :hi)
)
(test)
什么意思?为什么“greet”不是输出?
解决方法
您的错误信息
insert
对 string
或 character
进行操作,但您给了它一个 symbol
(:hi
)。将光标放在 insert
上并点击 Ch f RET(或在任何地方执行 Ch f insert RET),您将获得函数 {{1} 的描述} 在缓冲区 insert
中。
你的问题
我的 ESP 告诉我,您认为代码开头的 *Help*
应该将变量 :hi "greet"
绑定到值 :hi
,然后 "greet"
应该调用 {{1} (insert :hi)
的值应该是 insert
。
事实并非如此。
-
:hi
没有任何影响。 -
"greet"
是一个关键字,它始终是一个计算结果为自身且无法绑定的常量。 - 要绑定局部变量,请使用
let
,尝试 C-h f let RET。
因此你的代码应该是
:hi "greet"
补救措施
我强烈建议您阅读"An Introduction to Programming in Emacs Lisp", 你不会后悔的。 最好的方法是在 Emacs 中:C-h i m intro TAB RET.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。