public static EqualExpression Equal(FunctorInfo functor, object value, object[] tuple) { int length = tuple.Length; ConstantExpression[] expressions = new ConstantExpression[length]; for (int i = 0; i < length; ++i) { object tuple_i = tuple[i]; expressions[i] = Constant((tuple_i is Variable x1) ? x1.Value : tuple_i); } ConstantExpression _value = Constant((value is Variable x2) ? x2.Value : value); CompoundExpression compound = Compound(functor, expressions); return(Equal(compound, _value)); }
public static EqualExpression Equal(FunctorInfo functor, object[] data) { int length = data.Length; ConstantExpression[] expressions = new ConstantExpression[length - 1]; for (int i = 1; i < length; ++i) { object data_i = data[i]; expressions[i - 1] = Constant((data_i is Variable x) ? x.Value : data_i); } ConstantExpression value = Constant(data[0]); CompoundExpression compound = Compound(functor, expressions); return(Equal(compound, value)); }
public static EqualExpression Equal(CompoundExpression compound, ConstantExpression value) { return(new EqualExpression(compound, value)); }
internal EqualExpression(CompoundExpression left, TermExpression right) { m_left = left; m_right = right; }