Arrays 在F#中,float[]和float list之间有什么区别?

Arrays 在F#中,float[]和float list之间有什么区别?,arrays,list,f#,Arrays,List,F#,编译器正在指示“此表达式的类型应为float[] 但这里有一个类型“float list”。我认为“[]”是列表的语法。我不能简单地简化发布代码,但也许有人可以创建一个会产生此错误的示例。我在签名上搜索了几个网页。在类型注释中,[]表示一个数组。尽管在模式和表达式中,它都表示列表 注释列表时,通常首选语法float list,而不是.NET标准符号list,以避免与System.Collections.Generic.list(在F#中有ResizeArray类型缩写)混淆。在类型注释中,[]表

编译器正在指示“此表达式的类型应为float[]

但这里有一个类型“float list”。我认为“[]”是列表的语法。我不能简单地简化发布代码,但也许有人可以创建一个会产生此错误的示例。我在签名上搜索了几个网页。

在类型注释中,
[]
表示一个数组。尽管在模式和表达式中,它都表示列表


注释列表时,通常首选语法
float list
,而不是.NET标准符号
list
,以避免与
System.Collections.Generic.list
(在F#中有
ResizeArray
类型缩写)混淆。

在类型注释中,
[]
表示数组。尽管在模式和表达式中,它都表示列表


在注释列表时,通常首选语法
float list
,而不是.NET标准符号
list
,以避免与
System.Collections.Generic.list
(在F#中有
ResizeArray
类型缩写)。

float[]
是一个浮点数组,例如
[[1.]2.
,谢谢。我想知道为什么他们不使用“float[| |]]来避免这种类型的混淆?这主要与以下事实有关,即F#的语法被密切建模以与OCaml兼容,事实上在某些情况下,相同的代码在两种语言中都是兼容的。@JimLewis是因为教条。正如Daniel Fabian指出的,这只是从OCaml进行的无意识复制。它背后几乎没有健全的工程和程序员友好的思想。不幸的是,F#在语法/语法一致性或.NET语言互操作性方面设计得不好。F中有更多这样的怪癖,所以你要么接受它的原样,要么学习Python或Scala。
float[]
是一个浮点数组,例如
[[1;2.]。我想知道为什么他们不使用“float[| |]]来避免这种类型的混淆?这主要与以下事实有关,即F#的语法被密切建模以与OCaml兼容,事实上在某些情况下,相同的代码在两种语言中都是兼容的。@JimLewis是因为教条。正如Daniel Fabian指出的,这只是从OCaml进行的无意识复制。它背后几乎没有健全的工程和程序员友好的思想。不幸的是,F#在语法/语法一致性或.NET语言互操作性方面设计得不好。在F#中有更多这样的怪癖,所以你要么接受它,要么学习Python或Scala。