ubc.cs.JLog.Foundation
Interface iUnifiable

All Known Subinterfaces:
iList, iTerm
All Known Implementing Classes:
iPredicate, jAbs, jACos, jAdd, jAddEvent, jAfter, jAfterEqual, jAnimate, jAnimate_addshape, jAnimate_create, jAnimate_delete, jAnimate_getattr, jAnimate_getobject, jAnimate_getshape, jAnimate_init, jAnimate_move, jAnimate_objects, jAnimate_path, jAnimate_removeshape, jAnimate_rotate, jAnimate_setattr, jAnimate_setlevel, jAnimate_setmagnify, jAnimate_setview, jAnimate_shapes, jAnimate_update, jAppendArray, jArg, jASin, jAssert, jAsserta, jAssertz, jATan, jATan2, jAtom, jBefore, jBeforeEqual, jBinaryBuiltinPredicate, jBitwiseConjunction, jBitwiseDisjunction, jBitwiseExclusiveDisjunction, jBitwiseLeftShift, jBitwiseNegation, jBitwiseRightShift, jBuiltinPredicate, jCall, jCallN, jCeiling, jClause, jCommand, jCompare, jCompoundTerm, jConjunctTerm, jCons, jConvertArray, jCopyTerm, jCos, jCreate3, jCreate4, jCreateArray, jCurrentOpList, jCut, jDBConnect, jDBDisconnect, jDBExecute, jDBExecuteParam, jDBSelect, jDCG, jDynamic, jEnumerateVariablesArray, jEqual, jEquivalence, jEquivalent, jExists, jExp, jExpandTerm, jFail, jFloor, jFSDelete, jFSExists, jFSisFileOrDir, jFSLength, jFSListDir, jFSMakeDir, jFSRead, jFSWrite, jFunctor, jGetArrayElement, jGreaterThan, jGreaterThanEqual, jIf, jImport, jInteger, jIntegerArithmetic, jIntegerDivide, jIntegerOnlyArithmetic, jIntersectArray, jInvoke4, jInvoke5, jIs, jIsAtom, jIsAtomic, jIsCallable, jIsCompound, jIsGround, jIsInteger, jIsList, jIsNonVariable, jIsNumber, jIsReal, jIsSimple, jIsType, jIsVariable, jJ2P, jKeysort, jLessThan, jLessThanEqual, jList, jListPair, jLoadLibrary, jLog, jLog10, jLog2, jLogBase, jLookup, jMax, jMin, jMinus, jMod, jMultiply, jName, jNaryBuiltinPredicate, jNotEqual, jNotEquivalence, jNotEquivalent, jNotUnify, jNullList, jNumericComparison, jObject, jOp, jOperator, jOr, jOrPredicate, jP2J, jPlus, jPow, jPredicate, jPredicateTerms, jQuadaryBuiltinPredicate, jRandom, jRead, jReal, jRealArithmetic, jRealDivide, jRealUnaryArithmetic, jRegister, jRepeat, jRetract, jRound, jSetArrayElement, jSin, jSort, jSqrt, jStatic, jSubtract, jSubtractArray, jTan, jTerm, jTermToList, jTime, jTrinaryBuiltinPredicate, jTrue, jTruncate, jUnaryArithmetic, jUnaryBuiltinPredicate, jUnaryOperator, jUnify, jUnionArray, jUnregister, jVariable, jWrite

public interface iUnifiable

This is the interface for terms that support symbolic unification.

Author:
Glendon Holst

Method Summary
 boolean unify(jTerm term, jUnifiedVector v)
          Determines if this instance and term unify.
 

Method Detail

unify

boolean unify(jTerm term,
              jUnifiedVector v)
Determines if this instance and term unify. Every variable which was previously unbound, but which becomes bound during the unification must register itself with the jUnifiedVector. It is the callers responsibility to deal with the unified vector.

Parameters:
term - the term to unify with this instance.
v - the vector of variables bound during unification. Even if unification fails, this vector may contain recently bound vectors. This parameter is used to as output to the caller, not as input for unify.
Returns:
true if unification succeeded, false otherwise.