在prim-types.fs(v1.9.7.8)的第5633行,有以下类型缩写:
type 'T ``lazy`` = Lazy<'T>
Run Code Online (Sandbox Code Playgroud)
我有几个问题.
type lazy<'T> = Lazy<'T>?(如果没有,它有什么不同?)要回答你的问题的后半部分,泛型类型在F#就可以利用O'Caml式语法,其中泛型参数之前的类型(例如指定'a list,int array等等),或者用尖括号.NET样式(例如list<'a>,array<int>等等),所以这两个定义确实基本相同(除了您编写的版本在语法上无效,因为它lazy是一个关键字).对于多参数泛型类型,不推荐使用O'Caml样式并生成警告(例如,let (m:(int,string) Map) = Map.empty应该重写为let (m:Map<int,string>) = Map.empty).