Skip to content

Instantly share code, notes, and snippets.

View bitcrazed's full-sized avatar
💭
Helping improve the Windows developer platform.

Rich Turner bitcrazed

💭
Helping improve the Windows developer platform.
View GitHub Profile
@bitcrazed
bitcrazed / clojure-match.clj
Last active March 7, 2020 21:41 — forked from ckirkendall/clojure-match.clj
Language Comparison: Simple AST in Clojure, F#, Ocaml, Scala, Clojure, Ruby, C++, C#, Go, Haskell and others
(use '[clojure.core.match :only [match]])
(defn evaluate [env [sym x y]]
(match [sym]
['Number] x
['Add] (+ (evaluate env x) (evaluate env y))
['Multiply] (* (evaluate env x) (evaluate env y))
['Variable] (env x)))
(def environment {"a" 3, "b" 4, "c" 5})