Skip to content

Instantly share code, notes, and snippets.

@jneira
Forked from amitrathore/gist:273401
Created January 10, 2010 10:39
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 jneira/273432 to your computer and use it in GitHub Desktop.
Save jneira/273432 to your computer and use it in GitHub Desktop.
(defmacro extend-fn [name args & body]
`(let [old-fn# (var-get (var ~name))
new-fn# (fn [& p#]
(let [~args p#]
(do ~@body)))
wrapper# (fn [& params#]
(if (= ~(count args) (count params#))
(apply new-fn# params#)
(apply old-fn# params#)))]
(alter-var-root (var ~name) (constantly wrapper#))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment