Guest User

Untitled

a guest
May 9th, 2012
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. data Expr = Constant Int | Plus Expr Expr | Div Expr Expr
  2.  
  3. safeEval :: Expr -> Maybe Int
  4. safeEval (Constant i) = Just i
  5. safeEval (Div a (Constant 0)) = Nothing
  6. safeEval (Div (Constant a) (Constant b)) = Just (a `div` b)
  7. safeEval (Div a b) = safeEval (Div (safeEval a) (safeEval b))
  8. safeEval (Plus (Constant a) (Constant b)) = Just (a + b)
  9. safeEval (Plus a b) = safeEval (Plus (safeEval a) + (safeEval b))
Advertisement
Add Comment
Please, Sign In to add comment