aboutsummaryrefslogtreecommitdiff
path: root/src/clojure/contrib/macros.clj
diff options
context:
space:
mode:
authorKonrad Hinsen <konrad.hinsen@laposte.net>2009-02-15 21:56:18 +0000
committerKonrad Hinsen <konrad.hinsen@laposte.net>2009-02-15 21:56:18 +0000
commit742d0143421335f7eea6ca858efe9af576ec8f6a (patch)
tree2da3b15227b00185e54f46bd65ad1dfd9090a95b /src/clojure/contrib/macros.clj
parent5107e9d5b03204c2a60b47a669821939de7c07ac (diff)
macros: new macro lazy-and-standard-branch
Diffstat (limited to 'src/clojure/contrib/macros.clj')
-rw-r--r--src/clojure/contrib/macros.clj9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/clojure/contrib/macros.clj b/src/clojure/contrib/macros.clj
index e58892c4..5820e48e 100644
--- a/src/clojure/contrib/macros.clj
+++ b/src/clojure/contrib/macros.clj
@@ -26,3 +26,12 @@
(let [makefn (fn [[name args body]] (list name (list 'fn name args body)))
fns (vec (apply concat (map makefn (partition 3 fn-bindings))))]
`(let ~fns ~@exprs)))
+
+;; By Konrad Hinsen
+(defmacro lazy-and-standard-branch
+ "Comile the first expression in the lazy branch of Clojure, and the second
+ one in the standard branch."
+ [lazy-expr standard-expr]
+ (if (find (ns-map (find-ns 'clojure.core)) 'lazy-seq)
+ lazy-expr
+ standard-expr))