Hackage, monad transformatörler için çeşitli paketlere sahiptir:
- mtl : Monad trafo kütüphanesi
- transformatörler : Beton functor ve monad transformatörler
- monads-fd : İşlevsel bağımlılıkları kullanan Monad sınıfları
- monads-tf : tür aileleri kullanan Monad sınıfları
- monadLib : Bir monad transformatör koleksiyonu.
- mtl-tf : Tip aileleri kullanan Monad trafo kütüphanesi.
- mmtl : Modüler Monad trafo kitaplığı
- mtlx : 'ücretsiz' kopyalar sağlayan tip indeksli Monad trafo kitaplığı.
- compose-trans : Birleştirilebilir monad transformatörler
(ve belki bazılarını özledim)
Hangisini kullanmalıyız?
mtl, Haskell Platformundakidir, ancak reddit'te bunun havasız olduğunu duymaya devam ediyorum.
Ama seçimin nesi kötü, bu sadece iyi bir şey değil mi?
Örneğin, veri erişimcisinin yazarlarının tüm bunları sadece popüler tercihleri karşılamak için nasıl yaptıklarını gördüm:
- data-accessor-monadLib kütüphanesi: monadLib'in monad'leri için erişimci fonksiyonları
- data-accessor-monads-fd library: Monads-fd State monad sınıfında duruma erişmek için Accessor'u kullanın
- data-accessor-monads-tf library: monads-tf State monad türü ailesindeki duruma erişmek için Accessor'u kullanın
- data-accessor-mtl library: mtl State monad sınıfında duruma erişmek için Accessor'u kullanın
- veri erişimci-dönüştürücü kitaplığı: Transformatör Durum monad'ındaki duruma erişmek için Erişimci'yi kullanın
Bu devam ederse ve örneğin birkaç rakip Arrow paketi gelişirse, şöyle bir şey görebiliriz: spoonklink-oklar-transformatörler, spoonklink-oklar-monadLib, spoonklink-tfArrows-transformers, spoonklink-tfArrows-monadLib, ...
Ve sonra spoonklink çatallanırsa, Hackage'ın disk alanının biteceğinden endişeleniyorum. :)
Sorular:
- Neden bu kadar çok monad transformatör paketi var?
- Mtl [mtl] neden soğuk kabul edilir?
- Temel farklar nelerdir?
- Bu görünüşte birbiriyle yarışan paketlerin çoğu Andy Gill tarafından yazılmış ve Ross Paterson tarafından sürdürülüyor. Bu, bu paketlerin rekabet etmediği, bunun yerine bir şekilde birlikte çalıştığı anlamına mı geliyor? Andy ve Ross kendi paketlerinden herhangi birinin modası geçmiş olduğunu düşünüyor mu?
- Sen ve ben hangisini kullanmalıyız?