public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;

            AbstractTerm X0 = ((AbstractTerm)state["X0"]).Dereference();
            AbstractTerm X1 = ((AbstractTerm)state["X1"]).Dereference();

            if (TermEvaluator.Evaluate(X0) == TermEvaluator.Evaluate(X1))
            {
                program.Next();
            }
            else
            {
                state.Backtrack();
            }
        }
示例#2
0
        public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;

            AbstractTerm X0 = ((AbstractTerm)state["X0"]).Dereference();
            AbstractTerm X1 = ((AbstractTerm)state["X1"]).Dereference();

            if (X0.Unify(new ConstantTerm(TermEvaluator.Evaluate(X1).ToString())))
            {
                program.Next();
            }
            else
            {
                state.Backtrack();
            }
        }
示例#3
0
 public void eval(AbstractTerm term, double expected)
 {
     Assert.AreEqual(expected, TermEvaluator.Evaluate(term));
 }