Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- data Expr = Constant Int | Plus Expr Expr | Div Expr Expr
- safeEval :: Expr -> Maybe Int
- safeEval (Constant i) = Just i
- safeEval (Div a (Constant 0)) = Nothing
- safeEval (Div (Constant a) (Constant b)) = Just (a `div` b)
- safeEval (Div a b) = safeEval (Div (safeEval a) (safeEval b))
- safeEval (Plus (Constant a) (Constant b)) = Just (a + b)
- safeEval (Plus a b) = safeEval (Plus (safeEval a) + (safeEval b))
Advertisement
Add Comment
Please, Sign In to add comment