小编Adr*_*ian的帖子

也许monad里面有一堆变形金刚

我有以下代码:

import Control.Monad
import Control.Monad.Trans
import Control.Monad.Trans.State

type T = StateT Int IO Int

someMaybe = Just 3

f :: T
f = do
    x <- get
    val <- lift $ do
        val <- someMaybe
        -- more code in Maybe monad
        -- return 4
    return 3
Run Code Online (Sandbox Code Playgroud)

当我使用do内部符号在Maybemonad中工作时,它会失败.从它给出的错误看起来像这样的类型签名do不匹配.但是我不知道如何解决它.我尝试了一些lift组合,但没有一个工作,我不想再猜测了.

monads haskell

6
推荐指数
1
解决办法
916
查看次数

标签 统计

haskell ×1

monads ×1