在Emacs Lisp中,一些关键字没有定义

时间:2012-12-12 10:52:46

标签: emacs lisp keyword

我最近选择了一本关于lisp的旧书,我正在尝试使用emacs学习lisp。我正在使用ielm模式和交互模式,但我遇到了关键字未被定义的问题。我正在关注这本书的例子,但有时我会得到一个

  

*** eval error ***符号的函数定义无效: - 关键字 -

以下关键字:DEFINE,TIMES,DIFFERENCES,ADD1等不起作用。而其他关键字如:SQRT,MAX,MIN等可以使用。

我是emacs的初学者,所以我不会放弃了解错误。

3 个答案:

答案 0 :(得分:3)

有几个dialects的lisp,例如Common Lisp,Scheme,Emacs Lisp等 一种方言中可用的函数,变量或关键字可能不在另一种方言中。

正如雷纳所说,你书中的方言可能已经不再使用,你不应该学习它。选择一个更新的并购买一本书或在线查找文档。如果您是Lisp的新手,那么从Scheme开始这可能是一个好主意,{{3}}是Lisp的主要方言,而且相对简单。

最后一件事:Emacs是一个编辑器,您可以使用它来编写任何Lisp方言。现在,Emacs本身(主要)用Emacs Lisp编写,这是一种专为Emacs设计的Lisp方言。只有在想要修改或自定义Emacs时才知道它。

答案 1 :(得分:1)

你的书可能很旧,并使用了一种不再使用的Lisp方言。

您可能希望获得该书的稍微更新版本。

请参阅:http://people.csail.mit.edu/phw/Books/#AI,了解本书的旧Common Lisp(80年代)代码。

答案 2 :(得分:0)

你可能会更好地讨论一本书Emacs Lisp(一个与Emacs捆绑在一起,输入 C-h我是Emacs Intro RET 来访问它)。

不过,这本书看起来很古老,我想它描述的是一种非标准的Lisp方言。请考虑改为阅读Practical Common LispStructure and Interpretation of Computer Programs之类的内容。