Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (use '[clojure.core.match :only [match]])
- (defn evaluate [env exp]
- (match [exp]
- [(['Number a] :seq)] a
- [(['Add x y] :seq)] (+ (evaluate env x) (evaluate env y))
- [(['Multiply x y] :seq)] (* (evaluate env x) (evaluate env y))
- [(['Variable i] :seq)] (env i)))
- (def environment {"a" 3, "b" 4, "c" 5})
- (def expression-tree '(Add (Variable "a") (Multiply (Number 2) (Variable "b"))))
- (def result (evaluate environment expression-tree))
Add Comment
Please, Sign In to add comment