Gibt es einen etablierten Namen für maybe mzero return
?Gibt es einen Namen für "vielleicht mzero Rückkehr"?
Es hat die Art:
MonadPlus m => Maybe a -> m a
und wandelt Nothing
zum Scheitern und Just a
-return a
.
Gibt es einen etablierten Namen für maybe mzero return
?Gibt es einen Namen für "vielleicht mzero Rückkehr"?
Es hat die Art:
MonadPlus m => Maybe a -> m a
und wandelt Nothing
zum Scheitern und Just a
-return a
.
optparse-applicative
hat hoistMaybe
.
monad-extras
hat liftMaybe
.
errors
hat justZ
.
IfElse
hat maybeMP
Alle oben genannten sind die gleichen.
würde Eine offensichtliche Variante
maybeAlt :: Alternative f => Maybe a -> f a
maybeAlt = maybe empty pure
Und das ist zu asum
sein ein Sonderfall der folgenden ähnlich.
import Data.Monoid
import Control.Applicative
foldAlt :: (Foldable f, Alternative m) => f a -> m a
foldAlt = getAlt . foldMap (Alt . pure)
Der Grund, warum Sie das nirgendwo finden, ist das pure a <|> x === pure a
. Es ist also gut für das und nicht viel anderes. Es könnte
foldAltMap f = getAlt . foldMap (Alt . f)
oder
foldrAltMap f = foldr (\x r -> f x <|> r) empty
aber es ist wahrscheinlich klarer nur
verbessert werden, es zu schreiben.
Ich habe mich gefragt, ob die Gemeinde zu einem Konsens darüber gekommen ist, wie es heißen soll. Scheint wie ein Kandidat für die Aufnahme in "Base" irgendwo. – ErikR
@ErikR, ich weiß nicht darüber. Es tut uns leid. – dfeuer
@dfeuer Vielleicht 'foldAlt = asum. fmap pure' macht es deutlicher, wie ähnlich es mit 'asum' ist. –