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
を返します。