gpt4 book ai didi

haskell - 简化 IO block 中的 Maybe monad

转载 作者:行者123 更新时间:2023-12-02 17:13:06 26 4
gpt4 key购买 nike

假设我有一个函数:

get :: String -> Maybe [(C8.ByteString, Maybe C8.ByteString)] -> IO (Response LC8.ByteString)
get url qParams' = do
request <- parseUrl url

--todo simplify
let qParams = case qParams' of
Just p -> p
Nothing -> []

res <- withManager $ httpLbs $ configRequest request qParams
return res

我相信有一种方法可以简化 let qParams = ...表达。但我不知道。我本来可以用 Just qParams <- qParams'如果它是 Maybe monad,但它是 IO monad,所以我不能使用它。

你的想法?

最佳答案

使用maybe功能:

let qParams = maybe [] id qParams'

或者正如@MichaelSnoyman建议的那样,您可以使用 fromMaybe :

let qParams = fromMaybe [] qParams'

关于haskell - 简化 IO block 中的 Maybe monad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24859884/

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