2011-04-26 61 views
24

Hackage上有許多不同的monad變換器庫。有些人似乎比其他人受到更多的關注。僅舉幾例:mtl(由於某些原因取決於變換器的當前版本),變換器,monadLib,monads-tf,mtlx,contstuff。Monad變形金剛圖書館 - 哪一個使用?

哪一個應該是首選,爲什麼?他們的獨特功能是什麼?性能如何?

+2

爲了回答一個微不足道的問題:我相信'mtl'正逐漸被淘汰,轉而使用'變形金剛'。這一過程中的當前步驟是用'變形金剛'周圍的薄包裝來代替它,因此依賴。 – 2011-04-26 22:17:01

+5

@camccann:'mtl'提供了比'transformers'更多的功能,相當於'transformers' +'monads-fd'(現在已被棄用)。 '變形金剛'儘可能地在Haskell-98包中提供,具有'mtl'提供的額外功能(主要是更多的實例),或者根據需要提供替代包(例如'monads-tf')。 – 2011-04-26 22:31:33

+0

@John L:哦,所以'mtl'正在有效地取代'monads-fd',然後呢?謝謝你的澄清,我有點落後於時代。 – 2011-04-26 22:43:52

回答

16

Haskell Platform指定mtltransformers作爲標準。

如果你不確定,你應該只使用mtl

但是,如果您有特定的技術原因來查看新庫,他們往往會解決問題或向mtl添加新功能。特別是monadLib有一些新功能。

+2

HP選擇mtl的理由是什麼? – Tener 2011-04-26 22:50:59

+0

它是最古老,使用最廣泛,最好理解的monad庫。 – 2011-04-26 22:58:00

+2

...其中,[通過Hackage依賴關係](http://bifunctor.homelinux.net/~roel/hackage/packages/archive/revdeps-list.html),「最廣泛使用」意味着像「一個命令比「變形金剛合併」以外的所有其他數量都要多。 – 2011-04-26 23:25:36