プログラミング Gauch - 17 章 練習問題
メソッド適用のカスタマイズについて。ここの動作がよくわからない。とりあえず動作を順に書き出してみよう。
クラスが定義される。これが総称関数クラス。 クラスへの総称関数適用方法が変更される。それを行うのが apply-generic。 を継承した クラスが定義される。 クラスへの総称関数適用方法が変更される。 のインスタンスとして sub という総称関数が定義される。 - 二つの数値を引数にとる sub が定義される。
この状態で (sub ([num1
に対して apply-generic した処理が呼ばれる - その中の next-method で sub 内部の処理が呼ばれる??
- その後で
に対して apply-generic した処理が呼ばれる?
という感じに見えます*1。next-method は優先順位が次のメソッドを呼ぶもののはずなので、sub 本体をこれで呼んでいるわけじゃないと思うのだけれど、処理の流れとしてはここに入ってるような気がする。sub の中では next-method 等をしているわけではないけれど、その後に上位クラスの総称関数適用処理が呼ばれているのもよくわからない。sub 本体が最後に呼ばれるならなんとなくわかるのだけれど。
そして練習問題。