《人工智能编程范式》使用哪种LISP方言编写的?

5
这是为哪个版本/方言/实现的LISP而设计的?
(我知道这本书是用通用LISP编写的(如介绍中所指定的),并且早于1994年的CL标准。)
将问题分成两部分以使其更清晰。

它被称为“AI编程范式”,而不是“原则...” - Xach
3
你能展示你正在阅读的函数吗? - Ken
从您提供的链接的第一行开始:;;;; -*- Mode: Lisp; Syntax: Common-Lisp -*- - harto
3个回答

7

那些不是函数,而是变量绑定。并非在表单中出现的所有内容都是函数名称;封闭表单可能会为内部表单引入特殊含义。例如,let 就是这种情况:

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

在这个例子中,actionresult都没有命名为一个函数。

2
那些是绑定。它们由lambda列表引入。 - Xach

3

如果我们查看 Peter Norvig 的 书籍网页 上找到的 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编写的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接