gpt4 book ai didi

haskell - 如何在haskell中执行 "break"IO操作

转载 作者:行者123 更新时间:2023-12-02 16:46:15 25 4
gpt4 key购买 nike

我想在 haskell 中拥有“return”(命令式语言)函数。

例如

main = do
let a = 10
print a
-- return this function
print $ a + 1

我怎样才能实现这个目标?

最佳答案

您可以使用 Exceptions 在某种程度上模拟这一点,

{-# LANGUAGE DeriveDataTypeable #-}
import Control.Exception
import Data.Typeable

data MyException = MyException deriving (Show, Typeable)
instance Exception MyException

main = handle (\ MyException -> return ()) $ do
let a = 10 :: Int
print a
throwIO MyException
print $ a + 1 -- never gets executed

您还可以使用 ContT or ErrorT monad transformers 来完成此操作,尽管它们可能有点笨拙。

关于haskell - 如何在haskell中执行 "break"IO操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25151406/

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