我有一個問題,我不確定要使用哪種數據類型。目前我已經去了Array2D<'T>
,但我可能會改變我的想法在未來使用另一個容器。在C++中,我將使用實例方法,並且可以使用我可以隨時更改的一個typedef
(只要我的新容器支持所有必需的方法)。這將提供一個乾淨的抽象層,允許我根據需要進行更改。創建一個乾淨的抽象層
我該如何在F#中做類似的事情? typedef
有什麼用?這是什麼人會使用Haskell的'更高kinded類型'?如果在使用所有的方法都是一樣的縮寫類型
type MyType<'T> = Array2D<'T>
你可以運用MyType <「T>無處不在,然後替換實際執行
我認爲在.NET中的問題是很難找到具有相同方法的類型。我在[本項目]中做了初步工作(https://github.com/gmpl/FSharpPlus/blob/bb60400df656bf848a0de2d4503783b4b034b773/src/FSharpPlus/Operators.fs#L250)(請參閱集合和可摺疊)以便能夠切換在實現之間。這種技術與Haskell的類型類似。 – Gustavo