Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let rec simplify e =
- match e with
- | CstI i -> CstI i
- | Var x -> Var x
- | Prim("+",e1, CstI 0 ) -> simplify e1
- | Prim("+",CstI 0, e2) -> simplify e2
- | Prim("-",e1, CstI 0) -> simplify e1
- | Prim ("*",CstI 0, e2) -> CstI 0
- | Prim ("*",e1, CstI 0) -> CstI 0
- | Prim ("*",CstI 1, e2) -> simplify e2
- | Prim ("*",e1, CstI 1) -> simplify e1
- | Prim ("-", e1, e2) -> if simplify e1 = simplify e2 then CstI 0 else Prim("-", (simplify e1), (simplify e2))
- | Prim (a, b, c) -> Prim (a, (simplify b), (simplify c))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement