EitherIO Monad met do-notatie
Log in om je oplossingen te testen.
data EitherIO e a = EitherIO { runEitherIO :: IO (Either e a) }
instance Functor (EitherIO e) where
fmap f x = EitherIO $ do either <- runEitherIO x
return undefined
instance Applicative (EitherIO e) where
pure = EitherIO . return . Right
f <*> x = EitherIO $ do f' <- runEitherIO f
x' <- runEitherIO x
return undefined
instance Monad (EitherIO e) where
return = pure
m >>= k = EitherIO $ do m' <- runEitherIO m
return undefined
Je kunt zo vaak indienen als je wenst. Er wordt enkel rekening gehouden met je laatst ingediende oplossing.
Log in om je oplossingen te testen.