public static OpLambda GetLambda(OpExp op) { if (Cache.TryGetValue(op, out var opLambda)) { return(opLambda); } var left = Expression.Parameter(typeof(T)); var right = Expression.Parameter(typeof(T)); return(Cache[op] = Expression.Lambda <OpLambda>(op(left, right), left, right).Compile()); }
public static Expr _Exp(Expr lhs, OpExp op, Expr rhs) { return(new ExpExpr(lhs, rhs)); }