这是为哪个版本/方言/实现的LISP而设计的?
(我知道这本书是用通用LISP编写的(如介绍中所指定的),并且早于1994年的CL标准。)
将问题分成两部分以使其更清晰。
(我知道这本书是用通用LISP编写的(如介绍中所指定的),并且早于1994年的CL标准。)
将问题分成两部分以使其更清晰。
那些不是函数,而是变量绑定。并非在表单中出现的所有内容都是函数名称;封闭表单可能会为内部表单引入特殊含义。例如,let
就是这种情况:
(let ((action 42)
(result 51))
(+ action result))
action
和result
都没有命名为一个函数。如果我们查看 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)
)
Lisp的方言称为“Common Lisp”。这本书是用相对可移植的Common Lisp编写的。
;;;; -*- Mode: Lisp; Syntax: Common-Lisp -*-
- harto