DFe*_*oso 6 lisp common-lisp clos generic-function
我正在阅读实用的常见Lisp作为另一个问题的结果.
我刚刚阅读了第16章和第17章,您可以在其中找到LISP如何管理对象.但经过几年思考Java如何管理对象,我似乎无法理解如何使用CLOS在LISP中实现更大的架构.
所以我问你们大约20-50页关于CLOS应用于更大的架构而不是简单的例子.也许是一些博客或甚至经历!
TY
如果你想掌握Sonja E. Keene所着的"COMMON LISP中的面向对象编程",第11章(开发高级CLOS程序:Streams)包含一个包含多个继承的非平凡示例,大约40页.
详细讨论了八个类(流,输入流,输出流,双向流,字符流,字节流,磁盘流和磁带流).然后使用多重继承派生用户期望创建实例的具体类.
它比Practical Common Lisp中的银行帐户示例更实质.您可能还会发现Keene的其余部分有助于深入理解CLOS:整本书都是关于CLOS的.
也许看一下后面章节中介绍的示例应用程序。您将看到类和对象只是您框中的另一个工具。抵制使用 Lisp 语法进行 Java 编程的冲动。
另一个值得一看的地方是Success Lisp,第 7 章和第 14 章是基础知识,第 31 章和 3.10 的一部分是关于包和处理大型项目的。
一些 Lisp 大师(可能是 Paul Graham,但我不确定)曾经说过他根本不需要 CLOS。
编辑:我认为您的困惑可能来自于这样一个事实:在 Lisp 中,您不使用类系统来组织名称空间。这是单独完成的;两者实际上没有任何关系。