Skip to content

Instantly share code, notes, and snippets.

@pangloss
Created June 27, 2013 20:45
Show Gist options
  • Save pangloss/5880264 to your computer and use it in GitHub Desktop.
Save pangloss/5880264 to your computer and use it in GitHub Desktop.
Updated clojure.walk/walk to better handle MapEntry.
(defn walk [inner outer form]
(cond
(list? form) (outer (apply list (map inner form)))
(instance? clojure.lang.IMapEntry form) (let [[k v] (map inner form)]
(outer (clojure.lang.MapEntry. k v)))
(seq? form) (outer (doall (map inner form)))
(coll? form) (outer (into (empty form) (map inner form)))
:else (outer form)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment