5
maybe mzero return
の確立された名前はありますか?「多分mzero return」の名前はありますか?
それはタイプがあります。
MonadPlus m => Maybe a -> m a
をして失敗し、return a
からJust a
にNothing
を変換します。
maybe mzero return
の確立された名前はありますか?「多分mzero return」の名前はありますか?
それはタイプがあります。
MonadPlus m => Maybe a -> m a
をして失敗し、return a
からJust a
にNothing
を変換します。
optparse-applicative
はhoistMaybe
です。
monad-extras
はliftMaybe
である。
errors
はjustZ
である。
IfElse
はmaybeMP
上記のすべては同じですしています。
明白な変種は
maybeAlt :: Alternative f => Maybe a -> f a
maybeAlt = maybe empty pure
だろうそして、これはasum
に似た以下の特殊なケースです。
import Data.Monoid
import Control.Applicative
foldAlt :: (Foldable f, Alternative m) => f a -> m a
foldAlt = getAlt . foldMap (Alt . pure)
どこにも見つからない理由は、pure a <|> x === pure a
です。だからそれは良いことだし、他にはあまりありません。それは
foldAltMap f = getAlt . foldMap (Alt . f)
または
foldrAltMap f = foldr (\x r -> f x <|> r) empty
に改善することができたが、それはちょうどそれを書くために、おそらく明確です。
私は、コミュニティが何を呼び出すべきかについて合意に達しているのだろうかと思いました。どこかに 'base 'に含める候補者のようだ。 – ErikR
@ErikR、私はそれについて知らない。ごめんなさい。 – dfeuer
@dfeuerおそらく 'foldAlt = asum。 fmap pure'は 'asum'に似ています。 –