我最近选择了一本关于lisp的旧书,我正在尝试使用emacs学习lisp。我正在使用ielm模式和交互模式,但我遇到了关键字未被定义的问题。我正在关注这本书的例子,但有时我会得到一个
*** eval error ***符号的函数定义无效: - 关键字 -
以下关键字:DEFINE,TIMES,DIFFERENCES,ADD1等不起作用。而其他关键字如:SQRT,MAX,MIN等可以使用。
我是emacs的初学者,所以我不会放弃了解错误。
答案 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 来访问它)。