Dies ist die Art von >>=
:Mit Rückkehr in Haskell bindet Operator (>> =)
(>>=) :: Monad m => m a -> (a -> m b) -> m b
Es braucht eine Funktion als zweites Argument.
Und hier ist die Art der return
:
return :: Monad m => a -> m a
Returns m a
Und dies offensichtlich Kontrollen geben:
(>>) :: Monad m => m a -> m b -> m b
x >> y = x >>= (\_ -> y)
Aber warum tut die folgende Typprüfung und funktionieren ähnlich wie die über Code?
(>>) :: Monad m => m a -> m b -> m b
x >> y = x >>= return y
Hier return y
soll m a
als Typ und nicht a -> m a
. Warum funktioniert es?
'Return' ist' const' für Funktionen – Bergi