LISP的版本/方言/实现是什么意思?
(我确实理解这本书是用Common LISP编写的(如导言中所述),并且早于1994年CL标准).
将问题分成两部分,使其更加清晰.
那些不是功能.那些是变量绑定.并非所有在表单中首先出现的东西都是函数的名称; 封闭形式可能会对内部形式产生特殊含义.例如let:
(let ((action 42)
(result 51))
(+ action result))
Run Code Online (Sandbox Code Playgroud)
在该示例中既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)
)
Run Code Online (Sandbox Code Playgroud)
这表明它应该在 Franz Allegro、Lucid Lisp 或 Lispworks 中工作
| 归档时间: |
|
| 查看次数: |
507 次 |
| 最近记录: |