問題2.77

(magnitude z)

ここで

z -> '(complex rectangular 3 4)

apply-genericでcomplex型のmagnitude関数が呼び出される。
その関数はグローバルのmagnitude関数である。
よってグローバルのmagnitude関数にcomplex型の型情報を剥ぎ取った中身がもう一度渡される。
つまり、(magnitude (contents z))
ここで (contents z) -> '(rectangular 3 4)

なので、apply-genericはrectangular型のmagnitude関数を呼び出す。
それは、install-rectangularで定義された内部関数なので、計算が行われる。

apply-genericは2回呼び出される。
一度目はグローバルのmagnitude関数
二度目はinstall-rectangularで定義された内部関数のmagnitude関数

リスト構造をうまく使っている。