Skip to content

Instantly share code, notes, and snippets.

@cjohansen
Last active August 29, 2015 14:06
Show Gist options
  • Save cjohansen/5bb71ec44b864ffa9c33 to your computer and use it in GitHub Desktop.
Save cjohansen/5bb71ec44b864ffa9c33 to your computer and use it in GitHub Desktop.
Just for laughs: A simple macro that Java-ifies your Clojure.
(ns java-clj.core)
(defn java-1 [form]
(if (list? form)
(let [tail (map java-1 (rest (rest form)))]
(if (< 2 (count form))
`(~(second form) ~(first form) ~@tail)
`~form))
form))
(defmacro java [& forms]
(let [forms (map java-1 forms)]
`(do ~@forms)))
;; Now you can write in more familiar style
(java ("Java -> Clojure".substring 8)) ;;=> "Clojure"
(java (2 + 3)) ;;=> 5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment