September 2017
Beginner to intermediate
396 pages
9h 46m
English
import Data.Either
safeDiv :: Either String Int -> Either String Int -> Either String Int safeDiv (Left e) _ = Left e -- Any Left _ is an error, we produce the same safeDiv _ (Left e) = Left e -- error as a result. safeDiv (Right i) (Right j) | j == 0 = Left "Illegal Operation: Division by Zero" safeDiv (Right i) (Right j) = Right (i `div` j)
main :: IO () main = do let i = Right 10 :: Either String Int j = Right 2 :: Either String Int z = Right 0 :: Either String Int putStrLn $ "Safe division : 10 / 2 = " ++ (show $ safeDiv i j) putStrLn ...
Read now
Unlock full access