2012-12-12 21 views
0

我最近拿起了一本关于lisp的旧书,我正在尝试使用emacs学习lisp。我使用ielm模式和交互模式,但我遇到了关键字未定义的问题。我下面这本书的例子,但有时我会得到一个在Emacs Lisp中,一些关键字没有定义

***的eval错误***符号的函数定义是无效: - 的关键字定位

的关键字,如:定义,时间,DIFFERENCES,ADD1等不起作用。而其他关键字如:SQRT,MAX,MIN等等都可以使用。

我是一个完整的初学者在emacs所以我不放弃明白什么是错的。

回答

3

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

正如Rainer所说,你书中的方言可能不再使用,你不应该学习它。选择一个最近的购买书籍或在线查找文档。如果你是Lisp的新手,最好从Scheme开始,这是Lisp的一个主要方言,它比较简单。

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

+0

有没有办法找出我正在使用哪种方言?有没有方法可以将方言添加到emacs?我目前正在从这本书中学习:http://www.amazon.com/gp/product/0201084546/ref=olp_product_details?ie=UTF8&me=&seller= – Sugihara

+0

@Jack,检查我的更新答案。 – Ben

1

您的书可能很旧,并且使用不再使用的Lisp方言。

您可能想要获得该书的稍微更新版本。

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