是否有针对先进先出队列的单子量(monad)的标准(或至少是常用的)程序包?我之前在一篇论文中读到了这个,并且使用过几次,但我希望停止重新实现轮子(虽然很有趣,但不划算)。
State
函子作为状态,其中包含 Seq
容器。Seq
的版本在性能上最差与rampion的gist中令人不安的Ouroboros相当。话虽如此,如果后者不能被调整为具有更好的性能,但仅使用Seq
可能比说服GHC优化整个队列更少麻烦。 - C. A. McCann在hackage上有一个很棒的corecursive队列版本:http://hackage.haskell.org/package/control-monad-queue
我不会说它是标准的,但它肯定反映了相当多的工作和测试。
链接的monad reader文章也是一篇非常好的阅读材料。