【问题标题】:How can I turn a monadic function into a monadic state transformer?如何将一元函数转换为一元状态转换器?
【发布时间】:2015-04-11 09:21:07
【问题描述】:

基本上,我想要的是这样的:

stateIO :: (s -> IO (a, s)) -> StateT s IO a
stateIO f = do
    r <- get
    (a, r') <- liftIO $ f r
    put r'
    return a

我尝试使用state,但内部liftIO 有问题。是否有另一种更聪明的方法,无需手动解包?

【问题讨论】:

  • 这不只是StateT构造函数的特化吗?
  • @bisserlis 啊哈,我认为你是对的

标签: haskell io monads state


【解决方案1】:

哦,好吧。谢谢@bisserlis。

stateIO = StateT

(可能用于避免单态限制)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-03
    • 2020-03-26
    • 1970-01-01
    • 2014-09-04
    相关资源
    最近更新 更多