Skip to content

Instantly share code, notes, and snippets.

@jcromartie
Last active August 29, 2015 13:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jcromartie/9099929 to your computer and use it in GitHub Desktop.
Save jcromartie/9099929 to your computer and use it in GitHub Desktop.
(defn compile-unrolled
[f inputs]
(let [clauses (mapcat #(list % (f %)) inputs)]
`(fn [x#]
(case x#
~@clauses
(~f x#)))))
(defn unrolled
"Return a function with precomputed lookup for the given input domain."
[f inputs]
(eval (compile-unrolled f inputs)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment