For Development HEAD DRAFTSearch (procedure/syntax/module):

12.87 util.isomorph - 同型判定

Module: util.isomorph

二つの構造が同型かどうかを判定する手続きを提供するモジュールです。

Function: isomorphic? obj1 obj2 :optional context

{util.isomorph} obj1obj2が同型であれば#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
Generic Function: object-isomorphic? obj1 obj2 context

{util.isomorph} このメソッドで、二つのオブジェクトの同型判定処理をカスタマイズできます。 基本的には、オブジェクトのトラバースしたいスロットに対してisomorphic?を順に適用し、 全てが成功すれば#tを、一つでも失敗すれば#fを返すようにします。 contextはトラバースのコンテクストを保持しているオブジェクトです。そのまま isomorphic?に渡して下さい。

デフォルトメソッドは、obj1obj2equal?の意味で等しければ #tを返します。



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT