gpt4 book ai didi

haskell - 堆叠 ResourceT monad 转换器

转载 作者:行者123 更新时间:2023-12-02 23:32:20 26 4
gpt4 key购买 nike

我想将 ResourceTReaderT monad 堆叠在一起。看来我有两个选择:将 ReaderT 放置在堆栈的底部或顶部。

data MyEnv

newtype MyT1 m a = MyT1 { unT1 :: ResourceT (ReaderT MyEnv m) a }

newtype MyT2 m a = MyT2 { unT2 :: ReaderT MyEnv (ResourceT m) a }

就性能/正确性而言,什么会更好?将 ResourceTWriterT 或其他 monad 堆叠的一般准则是什么?

最佳答案

就正确性而言,它们都同样正确 - 请参阅 @J.Abrahamson 和 @Michael Snoyman 的评论。

性能可能取决于使用情况,特别是它会改变跨越该特定层的调用次数,这应该是主要的性能差异。我想大多数公平的基准测试几乎不会显示出差异。对于整个程序的性能,分析是王道。

关于haskell - 堆叠 ResourceT monad 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com