.NET F#函数列表

时间:2016-02-24 20:37:26

标签: .net list function f#

我正在尝试创建一个F#函数的.NET列表,但它一直告诉我它需要一些东西,但却有一个'而不是。我不确定,但我猜它是因为我无法创建一个F#函数的.NET列表。这是真的吗?

例如,当我尝试:

let listOfFunctions = new List<int -> unit>()

编译器相应地抱怨:

No constructors are available for the type 'List<(int -> unit)>'

修改

经过深思熟虑,我意识到,我忘了打开System.Collections.Generic,这导致了这个问题。我没有注意到这个问题,因为编译器认为它是一个F#列表,它没有像.NET Lists这样的构造函数。但是,由于类型签名看起来相同,所以令人困惑。请考虑以下代码:

let FSharpList : List<int> = [1;2;3]
let DotNetList : List<int> = new List<int>()

如果您不使用开放的System.Collections.Generic,编译器会将List视为F#列表,第二行显然会失败。但是如果你包含它,那么编译器将假设List是一个.NET列表,并且第一行会抱怨[1; 2; 3]应该具有类型List<int>,而是具有类型{{1} (也就是说它期待一个.NET列表)。

实际上,它与函数列表完全无关。实际上,以下代码:

'a list

工作正常。

0 个答案:

没有答案