- 替图 11.2 所定义的类定义访问器、 initforms 以及 initargs 。重写相关的代码使其再也不用调用 。
- 重写图 9.5 的代码,使得球体与点为类别,而
intersect
及normal
为通用函数。
- 画出表示类别
a
祖先的网络以及列出a
的实例归属的类别,从最相关至最不相关排列。
methods
:接受一个通用函数并返回一个列出所有方法的列表。
使用这些函数(不要使用 compute-applicable-methods
及 find-method
),定义一个函数 most-spec-app-meth
,该函数接受一个通用函数及一个列出此函数被调用过的参数,如果有最相关可用的方法的话,返回它。
- 不要改变通用函数
area
的行为(图 11.2), - 举一个只有通用函数的第一个参数被特化会很难解决的问题的例子。
我们不可能比较完所有的参数而仍有平手情形存在,因为这样我们会有两个有着同样特化的方法。这是不可能的,因为第二个的定义会覆写掉第一个。 |