unify-variables ( in-diff in-ok? in-var out-diff out-ok? out-var vars -- ? ) (original) (raw)
unify-variables ( in-diff in-ok? in-var out-diff out-ok? out-var vars -- ? )
Vocabulary
stack-checker.row-polymorphism
Inputs
in-diff | an object |
---|---|
in-ok? | an object |
in-var | an object |
out-diff | an object |
out-ok? | an object |
out-var | an object |
vars | an object |
Outputs
? | an object |
---|
Definition
USING: combinators.short-circuit kernel ;
IN: stack-checker.row-polymorphism
:: unify-variables
( in-diff in-ok? in-var out-diff out-ok? out-var vars -- ? )
{ [ in-ok? ] [ out-ok? ] [ in-diff out-diff = ] } 0&& dup [
in-var [ in-diff swap vars adjust-variable ] when*
out-var [ out-diff swap vars adjust-variable ] when*
] when ;