首页 > 解决方案 > 为什么 System.Func 的直接代码引用会产生委托,而拼接引用会产生 lambda?

问题描述

我很惊讶直接代码引用

<@ System.Func<int,int>( fun x -> x+1 ) @>

产生一个Expr.NewDelegate拼接的代码引用

<@ fun x -> x+1 @> |> fun e -> <@ System.Func<int,int>( %e ) @>

产生一个Expr.Lambda,我假设这些表达式是等价的。

这是预期的吗?有解释为什么吗?

标签: f#

解决方案


推荐阅读