【问题标题】:In Emacs Lisp, some of the keywords are not defined在 Emacs Lisp 中,有些关键字没有定义
【发布时间】:2012-12-12 10:52:45
【问题描述】:

我最近拿起一本关于 lisp 的旧书,我正在尝试使用 emacs 学习 lisp。我同时使用了 ielm 模式和交互模式,但我遇到了关键字未定义的问题。我正在遵循本书的示例,但有时我会得到一个

*** eval 错误 *** Symbol 的函数定义为 void:-the 关键字-

诸如:DEFINE、TIMES、DIFFERENCES、ADD1 等关键字将不起作用。而其他关键字,例如:SQRT、MAX、MIN 等也可以。

我是一个完全的 emacs 初学者,所以我不明白什么是错的。

【问题讨论】:

    标签: emacs lisp keyword


    【解决方案1】:

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

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

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

    【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      您可能会更好地阅读讨论Emacs Lisp 的书(一本与 Emacs 本身捆绑在一起,键入 C-h i m Emacs Intro RET 以访问它)。

      顺便说一句,这本书看起来很古老,我猜它描述了一种非标准的 Lisp 方言。考虑改为阅读 Practical Common LispStructure and Interpretation of Computer Programs 之类的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-08
        • 2011-08-06
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多