Guile 的面向对象编程问题

2024-12-30

本文探讨了 Guile Scheme 的面向对象编程系统 GOOPS 与 Common Lisp 对象系统 CLOS 之间的差异,并指出了 GOOPS 的一些不足。例如,GOOPS 的setter 特化与继承不兼容,不支持 before/after/around 方法限定符,方法组合算法不可控,方法参数特化受限,不支持关键字参数,并且缺少文档字符串。作者认为这些问题导致 GOOPS 使用起来不够优雅且易于出错,并提出了一些改进建议,例如模仿 CLOS 的行为,增加方法限定符,改进方法参数特化机制等。

开发 GOOPS CLOS