我是F#的新手,我注意到数组仍然是可变的。这是因为性能影响还是因为固有的.NET CLR类型系统造成的?我知道不可变列表确实存在。
谢谢
我是F#的新手,我注意到数组仍然是可变的。这是因为性能影响还是因为固有的.NET CLR类型系统造成的?我知道不可变列表确实存在。
谢谢
像OCaml一样,F#是一种实用而不是纯粹的语言。这就是一些人,比如我,最喜欢这些语言的原因。
在OCaml中,数组是可变的,而F#则连接了OCaml和.NET CLR库。那么,拥有可变数组是很合理的。
对于初学者来说,这两个世界之间的桥梁确实有点令人不安,最好的方法是接受现实并继续学习语言。正如开始所说,想象一个 实用 的而不是 纯粹的。
我不确定你所说的关于可变列表的内容。F#列表是不可变的。您可以使用.Net CLR System.Collections.Generic.List,它是可变的。但是在谈论列表时,FSharpers指的是不可变的[],[1..3]或按名称:Microsoft.FSharp.Collections.FSharpList`1。
F#集合:
https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/fsharp-collection-types
不变的核心类型是列表、映射和集合。