Hackage上有許多不同的monad變換器庫。有些人似乎比其他人受到更多的關注。僅舉幾例:mtl(由於某些原因取決於變換器的當前版本),變換器,monadLib,monads-tf,mtlx,contstuff。Monad變形金剛圖書館 - 哪一個使用?
哪一個應該是首選,爲什麼?他們的獨特功能是什麼?性能如何?
Hackage上有許多不同的monad變換器庫。有些人似乎比其他人受到更多的關注。僅舉幾例:mtl(由於某些原因取決於變換器的當前版本),變換器,monadLib,monads-tf,mtlx,contstuff。Monad變形金剛圖書館 - 哪一個使用?
哪一個應該是首選,爲什麼?他們的獨特功能是什麼?性能如何?
Haskell Platform指定mtl
和transformers
作爲標準。
如果你不確定,你應該只使用mtl
。
但是,如果您有特定的技術原因來查看新庫,他們往往會解決問題或向mtl
添加新功能。特別是monadLib
有一些新功能。
HP選擇mtl的理由是什麼? – Tener 2011-04-26 22:50:59
它是最古老,使用最廣泛,最好理解的monad庫。 – 2011-04-26 22:58:00
...其中,[通過Hackage依賴關係](http://bifunctor.homelinux.net/~roel/hackage/packages/archive/revdeps-list.html),「最廣泛使用」意味着像「一個命令比「變形金剛合併」以外的所有其他數量都要多。 – 2011-04-26 23:25:36
爲了回答一個微不足道的問題:我相信'mtl'正逐漸被淘汰,轉而使用'變形金剛'。這一過程中的當前步驟是用'變形金剛'周圍的薄包裝來代替它,因此依賴。 – 2011-04-26 22:17:01
@camccann:'mtl'提供了比'transformers'更多的功能,相當於'transformers' +'monads-fd'(現在已被棄用)。 '變形金剛'儘可能地在Haskell-98包中提供,具有'mtl'提供的額外功能(主要是更多的實例),或者根據需要提供替代包(例如'monads-tf')。 – 2011-04-26 22:31:33
@John L:哦,所以'mtl'正在有效地取代'monads-fd',然後呢?謝謝你的澄清,我有點落後於時代。 – 2011-04-26 22:43:52