Error Monad
Log in om je oplossingen te testen.
data Ofwel e a = Rechts a
| Links e
deriving (Show, Eq)
-- | Ofwel het exacte resultaat van een gehele deling, ofwel een foutboodschap.
safeDiv :: Int -> Int -> Ofwel String Int
safeDiv x y | y == 0 = Links "can't divide by zero"
| x `mod` y /= 0 = Links "not exact"
| otherwise = Rechts (x `div` y)
instance Functor (Ofwel e) where
fmap = undefined
instance Applicative (Ofwel e) where
pure = undefined
(<*>) = undefined
instance Monad (Ofwel e) where
return = undefined
(>>=) = undefined
-- | Kunnen we x appels en y peren eerlijk verdelen over z kinderen? Hoeveel vruchten krijgt elk?
sharing :: Int -> Int -> Int -> Ofwel String Int
sharing x y z = undefined
-- | Ofwel het n-de element van de lijst, ofwel een foutboodschap.
(!!?) :: [a] -> Int -> Ofwel String a
l !!? n = 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.