微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Elisp:读取常量

如何解决Elisp:读取常量

读取常量:hi时, 我收到错误

test: 错误的类型参数:char-or-string-p,:hi

(defun test ()
   :hi "greet"
   (insert :hi)
 )

(test)

什么意思?为什么“greet”不是输出

解决方法

您的错误信息

insertstringcharacter 进行操作,但您给了它一个 symbol (:hi)。将光标放在 insert 上并点击 Ch f RET(或在任何地方执行 Ch f insert RET),您将获得函数 {{1} 的描述} 在缓冲区 insert 中。

你的问题

我的 ESP 告诉我,您认为代码开头的 *Help* 应该将变量 :hi "greet" 绑定到值 :hi,然后 "greet" 应该调用 {{1} (insert :hi) 的值应该是 insert

事实并非如此。

  1. :hi 没有任何影响。
  2. "greet" 是一个关键字,它始终是一个计算结果为自身且无法绑定的常量。
  3. 要绑定局部变量,请使用 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 举报,一经查实,本站将立刻删除。