aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/apply_macro.clj
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure/contrib/apply_macro.clj')
-rw-r--r--src/clojure/contrib/apply_macro.clj43
1 files changed, 0 insertions, 43 deletions
diff --git a/src/clojure/contrib/apply_macro.clj b/src/clojure/contrib/apply_macro.clj
deleted file mode 100644
index 19a926d3..00000000
--- a/src/clojure/contrib/apply_macro.clj
+++ /dev/null
@@ -1,43 +0,0 @@
-;;; apply_macro.clj: make macros behave like functions
-
-;; by Stuart Sierra, http://stuartsierra.com/
-;; January 28, 2009
-
-;; Copyright (c) Stuart Sierra, 2009. All rights reserved. The use
-;; and distribution terms for this software are covered by the Eclipse
-;; Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)
-;; which can be found in the file epl-v10.html at the root of this
-;; distribution. By using this software in any fashion, you are
-;; agreeing to be bound by the terms of this license. You must not
-;; remove this notice, or any other, from this software.
-
-
-;; Don't use this. I mean it. It's evil. How evil? You can't
-;; handle it, that's how evil it is. That's right. I did it so you
-;; don't have to, ok? Look but don't touch. Use this lib and you'll
-;; go blind.
-
-
-(ns clojure.contrib.apply-macro)
-
-;; Copied from clojure.core/spread, which is private.
-(defn- spread
- "Flatten final argument list as in apply."
- [arglist]
- (cond
- (nil? arglist) nil
- (nil? (rest arglist)) (seq (first arglist))
- :else (cons (first arglist) (spread (rest arglist)))))
-
-(defmacro apply-macro
- "This is evil. Don't ever use it. It makes a macro behave like a
- function. Seriously, how messed up is that?
-
- Evaluates all args, then uses them as arguments to the macro as with
- apply.
-
- (def things [true true false])
- (apply-macro and things)
- ;; Expands to: (and true true false)"
- [macro & args]
- (cons macro (spread (map eval args))))