All pastes #259984 Raw Edit

Miscellany

public text v1 · immutable
#259984 ·published 2006-11-27 22:31 UTC
rendered paste body
simplify :: Expr -> Expr

data Expr = Num Int
        | Va1 String
        | Var String
        | Add Expr Expr
        | Sub Expr Expr
        | Mul Expr Expr deriving Show

simplify (Add x (Num 0)) = x
simplify (Add (Num 0) x) = x
simplify (Sub x (Num 0)) = x
simplify (Mul x (Num 1)) = x
simplify (Mul (Num 1) x) = x
simplify (Mul x (Num 0)) = (Num 0)
simplify (Mul (Num 0) x) = (Num 0)

simplify (Add x y) = Add (simplify x) (simplify y)
simplify (Sub x y) = Sub (simplify x) (simplify y)
simplify (Mul x y) = Mul (simplify x) (simplify y)