我不确定这是不是严格柯里,但我基本上想要实现以下。给定一个Expression
:我怎样才能将表情注入另一个表情?
Expression<Func<T1, T2, TResult>> expression
我想在自变量一个通过,并产生相应的Expression
其中用于该参数的值是固定的。得到的表达式应该在功能上等同于expression
,只是它应该包含少一个参数。
这导致表达式将是这个样子:
Expression<Func<T2, TResult>> curriedExpression;
我已经试过这一点,但它不工作,因为Expression
不会隐式转换为Lambda表达式:
curriedExpression = b => expression(fixedValueForT1, b);
请注意curriedExpression
不应包含对expression
的调用;除了固定值之外,它应该包含重复的逻辑。
我希望这是有道理的。让我知道这是否含糊不清或解释不好。
感谢。有没有更接近你用'Func'做同样的简单方法? – Sam
我担心没有简单的方法,当你使用表达式处理句法结构时,这总是一个相当复杂的业务! –