主要观点:
- 通用函数在概念上很美,但语法上有些丑陋,作者的通用函数使用风格旨在让其更接近常规函数,使函数更易读和正确。
- 介绍了通用函数的结构,包括函数、多个方法、类型调度和元数据等方面,强调了方法的重要性及不同定义方式的优缺点。
- 提到通用函数可通过类型调度实现高度可组合性,虽方法调度可能较昂贵,但可通过优化声明等方式解决,还介绍了元数据如方法组合和通用类的使用。
- 建议使用宏来简化通用函数的编写,如 define-generic 宏,并给出了使用示例和参考样式。
关键信息:
- 通用函数的定义方式,如先放文档和声明,后放方法;在通用定义中列出所有关键字/可选参数等。
- 方法的分类,如终止/调度/默认方法等,以及不同定义位置的优缺点。
- 类型调度可通过 eql 类型等实现,可覆盖类型层次结构的边缘情况。
- 定义简化的通用函数编写宏 define-generic 及其特点和使用示例。
重要细节:
- 以具体代码示例展示了通用函数的各种特性和用法,如从 NJSON 、Nclasses 等项目中的代码。
- 强调了在通用函数编写中要注重设计清晰的契约,不要过度优化。
- 提到可通过邮件提供反馈。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。