gpt4 book ai didi

haskell - 编写此代码的更短方法

转载 作者:行者123 更新时间:2023-12-02 06:57:08 25 4
gpt4 key购买 nike

以下模式在 Haskell 代码中出现得非常频繁。有没有更短的写法?

if pred x
then Just x
else Nothing

最佳答案

您正在寻找mfilter in Control.Monad :

mfilter :: MonadPlus m => (a -> Bool) -> m a -> m a

-- mfilter odd (Just 1) == Just 1
-- mfilter odd (Just 2) == Nothing

请注意,如果条件不依赖于 MonadPlus 的内容,您可以改为编写:

"foo" <$ guard (odd 3) -- Just "foo"
"foo" <$ guard (odd 4) -- Nothing

关于haskell - 编写此代码的更短方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7453744/

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