gpt4 book ai didi

haskell - 将 StateT IO 与 State 结合

转载 作者:行者123 更新时间:2023-12-02 01:39:30 24 4
gpt4 key购买 nike

如果我有一个函数f :: State Int () ,是否可以在另一个函数中使用它g :: StateT Int IO () ?用 f = do { something; g } 嵌套它无法使用 Couldn't match type 'Data.Functor.Identity.Identity' with 'IO' 进行类型检查.

最佳答案

是的,这个操作通常被称为“吊装”。对于 State monad,它可以定义为

hoistState :: Monad m => State s a -> StateT s m a
hoistState = state . runState

不幸的是,它没有在 Control.Monad.State 中定义。模块。

关于haskell - 将 StateT IO 与 State 结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17325485/

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