Next: util.lcs - The longest common subsequence, Previous: util.dominator - Calculate dominator tree, Up: Library modules - Utilities [Contents][Index]
util.isomorph - Determine isomorphismProvides a procedure that determines whether two structures are isomorphic.
{util.isomorph}
Returns #t if obj1 and obj2 are isomorphic.
context is used if you want to call isomorphic?
recursively inside object-isomorphic? described below.
(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}
With this method, you can customize how to determine isomorphism of
two objects. Basically, you will call isomorphic? recursively
for each slots of object you want to traverse; the method should return
#t if all of the test succeeds, or return #f otherwise.
context is an opaque structure
that keeps the traversal context, and you should pass it to
isomorphic? as is.
The default method returns #t if obj1 and obj2 are
equal (in the sense of equal?).
Next: util.lcs - The longest common subsequence, Previous: util.dominator - Calculate dominator tree, Up: Library modules - Utilities [Contents][Index]