【发布时间】:2023-03-30 01:34:02
【问题描述】:
当我设计我的编程模型时,我总是纠结于哪种方法更好:
type MyMonad1 = StateT MyState (Reader Env)
type MyMonad2 = ReaderT Env (State MyState)
在使用一个 monad 和另一个之间有什么好处和权衡?这有关系吗?性能怎么样?
【问题讨论】:
-
我不是 Monad Transformers 方面的专家,但据我所知,这并不重要。模新类型,
MyMonad1 a和MyState -> Env -> (a, MyState)一样,而MyMonad2 a是Env -> MyState -> (a, MyState),所以唯一的区别是参数顺序。 -
这个问题是专门针对
ReaderT和StateT,还是一般来说是关于如何选择堆栈中的transformer的顺序? -
具体说这两个
标签: performance haskell monads state-monad reader-monad