备注

本节既是备注亦作为参考文献。所有列于此的书籍与论文皆值得阅读。

译注: 备注后面跟随的数字即书中的页码

备注 3 (Notes 3)

备注 4 (Notes 4)

备注 5 (Notes 5)

备注 5-2 (Notes 5-2)

备注 12 (Notes 12)

备注 17 (Notes 17)

备注 26 (Notes 26)

备注 28 (Notes 28)

备注 46 (Notes 46)

备注 61 (Notes 61)

备注 62 (Notes 62)

备注 76 (Notes 76)

备注 81 (Notes 81)

备注 84 (Notes 84)

备注 89 (Notes 89)

备注 91 (Notes 91)

备注 94 (Notes 94)

备注 95 (Notes 95)

备注 100 (Notes 100)

备注 100-2 (Notes 100-2)

备注 106 (Notes 106)

备注 109 (Notes 109)

备注 109-2 (Notes 109-2)

备注 112 (Notes 112)

备注 123 (Notes 123)

备注 125 (Notes 125)

备注 141 (Notes 141)

备注 141-2 (Notes 141-2)

备注 150 (Notes 150)

下面这个函数会显示在一个给定实现中,16 个用来标示浮点表示法的限制的全局常量:

1
2
3
4
5
6
7
8
(defun float-limits ()
  (dolist (m '(most least))
    (dolist (s '(positive negative))
      (dolist (f '(short single double long))
        (let ((n (intern (string-upcase
                            (format nil "~A-~A-~A-float"
                                          m  s  f)))))
          (format t "~30A ~A ~%" n (symbol-value n)))))))

备注 164 (Notes 164)

快速排序演算法霍尔于 1962 年发表,并被描述在 Knuth, D. E. Sorting and Searching. Addison-Wesley, Reading (MA), 1973.一书中。

备注 176 (Notes 176)

关于 CLOS 更详细的信息,参考下列书目:

Keene, Sonya E. Object Oriented Programming in Common Lisp , Addison-Wesley, Reading (MA), 1989

Kiczales, Gregor, Jim des Rivieres, and Daniel G. Bobrow. The Art of the Metaobject Protocol MIT Press, Cambridge, 1991

备注 178 (Notes 178)

让我们再回放刚刚的句子一次:我们甚至不需要看程序中其他的代码一眼,就可以完成种种的改动。这个想法或许对某些读者听起来担忧地熟悉。这是写出面条式代码的食谱。

面向对象模型使得通过一点一点的来构造程序变得简单。但这通常意味著,在实践上它提供了一种有结构的方法来写出面条式代码。这不一定是坏事,但也不会是好事。

很多现实世界中的代码是面条式代码,这也许不能很快改变。针对那些终将成为面条式代码的程序来说,面向对象模型是好的:它们最起码会是有结构的面条。但针对那些也许可以避免误入崎途的程序来说,面向对象抽象只是更加危险的,而不是有用的。

备注 178 (Notes 178)

备注 183 (Notes 183)

备注 191 (Notes 191)

备注 204 (Notes 204)

备注 213 (Notes 213)

Knuth, Donald E. Structured Programming with goto Statements. Computing Surveys , 6:4 (December 1974), pp. 261-301

备注 214 (Notes 214)

Knuth, Donald E. Computer Programming as an Art In ACM Turing Award Lectures: The First Twenty Years. ACM Press, 1987

备注 216 (Notes 216)

备注 217 (Notes 217)

备注 218 (Notes 218)

备注 219 (Notes 219)

备注 224 (Notes 224)

备注 229 (Notes 229)

备注 230 (Notes 230)

备注 239 (Notes 239)

备注 242 (Notes 242)

备注 248 (Notes 248)

关于更深入讲述逻辑推论的资料,参见:Stuart RussellPeter Norvig 所著的 Artificial Intelligence: A Modern Approach

备注 276 (Notes 276)

备注 284 (Notes 284)

备注 284-2 (Notes 284-2)

Gabriel, Richard P. Lisp Good News, Bad News, How to Win Big AI Expert, June 1991, p.35.

早在 1973 年,Richard Fateman 已经能证明在 PDP-10 主机上,MacLisp 编译器比制造商的 FORTRAN 编译器,产生出更快速的代码。

译注: 该篇 MacLisp 编译器在 PDP-10 可产生比 Fortran 快的代码的论文在这可以找到

备注 399 (Notes 399)

comments powered by Disqus