Guest User

Untitled

a guest
Oct 21st, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.44 KB | None | 0 0
  1. (use '[clojure.core.match :only [match]])
  2.  
  3. (defn evaluate [env exp]
  4. (match [exp]
  5. [(['Number a] :seq)] a
  6. [(['Add x y] :seq)] (+ (evaluate env x) (evaluate env y))
  7. [(['Multiply x y] :seq)] (* (evaluate env x) (evaluate env y))
  8. [(['Variable i] :seq)] (env i)))
  9.  
  10. (def environment {"a" 3, "b" 4, "c" 5})
  11.  
  12. (def expression-tree '(Add (Variable "a") (Multiply (Number 2) (Variable "b"))))
  13.  
  14. (def result (evaluate environment expression-tree))
Add Comment
Please, Sign In to add comment