Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 检查是否发生了投掷者_Haskell_Monads - Fatal编程技术网

Haskell 检查是否发生了投掷者

Haskell 检查是否发生了投掷者,haskell,monads,Haskell,Monads,(StateT Env(error String IO))()是我的单子堆栈。我使用throwError函数中止计算并传播有关错误的信息。我知道这是一种感觉,即errormonad-中止和传播错误 然而,问题是:是否可以检查是否抛出了错误 我的意思是: res <- computeSomething -- it may throw error case (error was thrown) of True -> do something False ->

(StateT Env(error String IO))()
是我的单子堆栈。我使用
throwError
函数中止计算并传播有关错误的信息。我知道这是一种感觉,即
error
monad-中止和传播错误

然而,问题是:是否可以检查是否抛出了错误

我的意思是:

res <- computeSomething -- it may throw error
case (error was thrown) of
      True -> do something
      False -> do something else
res做点什么
False->做其他事情

这正是catchError的作用所在。非常感谢!