【问题标题】:Which dialect of LISP is 'Paradigms of Artificial Intelligence Programming' written in?“人工智能编程范式”是用 LISP 的哪种方言编写的?
【发布时间】:2010-11-04 11:08:54
【问题描述】:

这意味着要在 LISP 的哪个版本/方言/实现上运行?

(我知道这本书是用 Common LISP 编写的(如简介中所述),并且早于 1994 年 CL 标准)。


将问题分成两部分以使其更清楚。

【问题讨论】:

  • 它被称为“人工智能编程范式”,而不是“原理......”
  • 你能显示你正在阅读的函数吗?
  • 从您提供的链接的第一行:;;;; -*- Mode: Lisp; Syntax: Common-Lisp -*-

标签: lisp common-lisp


【解决方案1】:

那些不是函数。这些是变量绑定。并非所有出现在表单中的第一件事都是函数的名称。封闭形式可以为内部形式引入特殊含义。例如,情况就是这样。 let:

(let ((action 42)
      (result 51))
  (+ action result))

actionresult 在该示例中均未命名函数。

【讨论】:

  • 那些绑定。它们由 lambda 列表引入。
【解决方案2】:

如果我们查看 Peter Norvig 的 web page for the book 上的 auxfns.lisp,就会发现这一点

(eval-when (eval compile load)
  ;; Make it ok to place a function definition on a built-in LISP symbol.
  #+(or Allegro EXCL)
  (dolist (pkg '(excl common-lisp common-lisp-user))
    (setf (excl:package-definition-lock (find-package pkg)) nil))

  ;; Don't warn if a function is defined in multiple files --
  ;; this happens often since we refine several programs.
  #+Lispworks
  (setq *PACKAGES-FOR-WARN-ON-REDEFINITION* nil)

  #+LCL 
   (compiler-options :warnings nil)
  )

这表明它应该在 Franz Allegro、Lucid Lisp 或 Lispworks 中工作

【讨论】:

    【解决方案3】:

    Lisp 的方言称为“Common Lisp”。这本书是用相对便携的 Common Lisp 编写的。

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 2015-08-02
      • 2015-12-28
      • 2018-12-26
      • 2011-05-11
      • 2013-11-04
      • 1970-01-01
      • 2015-02-15
      相关资源
      最近更新 更多