Next: util.lcs - 最長共通サブシーケンス, Previous: util.dominator - 支配木, Up: ライブラリモジュール - ユーティリティ [Contents][Index]
util.isomorph - 同型判定二つの構造が同型かどうかを判定する手続きを提供するモジュールです。
{util.isomorph}
obj1とobj2が同型であれば#tを返します。
省略可能な引数contextは、下で説明するobject-isomorphic?
の中からisomorphic?を再帰的に呼び出す場合に使います。
(isomorphic? '(a b) '(a b)) ⇒ #t
(define x (cons 0 0))
(define y (cons 0 0))
(isomorphic? (cons x x)
(cons x y))
⇒ #f
(isomorphic? (cons x x)
(cons y y))
⇒ #t
{util.isomorph}
このメソッドで、二つのオブジェクトの同型判定処理をカスタマイズできます。
基本的には、オブジェクトのトラバースしたいスロットに対してisomorphic?を順に適用し、
全てが成功すれば#tを、一つでも失敗すれば#fを返すようにします。
contextはトラバースのコンテクストを保持しているオブジェクトです。そのまま
isomorphic?に渡して下さい。
デフォルトメソッドは、obj1とobj2がequal?の意味で等しければ
#tを返します。
Next: util.lcs - 最長共通サブシーケンス, Previous: util.dominator - 支配木, Up: ライブラリモジュール - ユーティリティ [Contents][Index]