プログラミング Gauch - 17 章 フラグで切り分けてみる
よくないと思いつつ、フラグで動作を切り分けた。
next-method を呼ぶ際に #f か #t を引数の先頭に付加してみる*1。そして
(define-method apply-generic ((gf) args)
(inc! (ref gf 'counter))
(with-time-counter (ref gf 'time) (next-method gf (cons '#f args))))
こんな感じで切り分け。うーん、他に思いつかない orz
(define-method apply-generic ((gf) args)
(let ((return-value (next-method gf (cdr args))))
(if (not (car args))
(begin
(format #t "args: ~s\n" args)
(format #t "result: ~s\n" return-value)))
return-value))
*1:ここはドットを使った可変長引数にできないものか