gpt4 book ai didi

haskell - 使用谓词提升到 Maybe

转载 作者:行者123 更新时间:2023-12-02 11:00:39 26 4
gpt4 key购买 nike

我正在寻找类似的东西

liftPredMaybe :: (a -> Bool) -> a -> Maybe a
liftPredMaybe p a
| p a = Just a
| otherwise = Nothing

Haskell中已经有这样的函数了吗?

最佳答案

不完全是一个现成的解决方案,但具有 guard (来自Control.Monad)和(<$) (来自 Data.Functor )我们可以写:

ensure :: Alternative f => (a -> Bool) -> a -> f a
ensure p a = a <$ guard (p a)

(感谢 Daniel Wagner 为该函数提供了一个好听的名称。)

可疑品味的更无意义的拼写是 \p -> (<$) <*> guard . p .

关于haskell - 使用谓词提升到 Maybe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281530/

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