Hackage有几个用于单台变压器的包:
(也许我漏掉了一些)
我们该用哪一种?
mtl是Haskell平台上的一个,但我经常在reddit上听到它不酷。
但选择有什么坏处,不是好事吗?
嗯,我看到了,例如,数据访问器的作者必须做出所有这些来迎合流行的选择:
我设想,如果这种情况持续下去,例如几个竞争的箭包的发展,我们可能会看到这样的东西:勺子链接箭头-变压器,勺子链接-箭头-monadLib,勺子链接-tfArrows变压器,勺子链接-tfArrows monadLib,
然后,我担心如果spoonklink被分叉,黑客将耗尽磁盘空间。:)
问题:
发布于 2010-05-05 00:28:46
暂时的?您可能应该使用mtl。正在发生的情况是,transformers库正在以一种monads-fd和monads-tf可以和平共处的方式从MTL中分离出来,但最终检查的结果还不是这样。
当发生这种情况时,您将能够导入monads-fd和transformers,并获得(几乎)相同的接口,但State等将是StateT的别名。
因此,我会写信给mtl,但不依赖这样一个事实,即State等目前是data,因为它们将被types所取代。
MonadLib是Iavor一直在使用的另一种选择,它可以安全地使用,因为它不与其他模块共享任何模块名称,但是它有一个完全不同的使用模式。
发布于 2017-03-04 23:48:51
他的回答中提到的Edward提到的保理于2010年底完成。它的最终结果是建立在变压器上的monads,成为mtl的第2版。由于mtl的广泛性,monads从来没有真正流行过。截至2017年初,mtl和变压器是唯一被广泛使用的单台变压器库。
https://stackoverflow.com/questions/2769487
复制相似问题