ConstantFolding
let rec ConstantFolding node = | |
match node with | |
| Add (l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with | |
| (Constant v1,Constant v2) -> Constant(v1+v2) | |
| (optL,optR) -> Add(optL,optR) | |
| Sub(l,r) -> match (ConstantFolding(l),ConstantFolding(r)) with | |
| (Constant v1,Constant v2) -> Constant(v1-v2) | |
| (optL,optR) -> Sub(optL,optR) | |
| X -> X | |
| Constant v -> Constant(v) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment