diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-09-15 21:55:21 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-09-15 21:55:21 +0000 |
commit | ae704ada24e998ac243b207798b310675dc728bb (patch) | |
tree | dde8be48085d533d21090ce7e5d1fa7eede00016 /src | |
parent | ed407170f65b744505bd64ea9b8203cb22a1e1ce (diff) |
conj
Diffstat (limited to 'src')
-rw-r--r-- | src/boot.clj | 1 | ||||
-rw-r--r-- | src/jvm/clojure/lang/Compiler.java | 4 | ||||
-rw-r--r-- | src/jvm/clojure/lang/OldCompiler.java | 6 | ||||
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 6 |
4 files changed, 9 insertions, 8 deletions
diff --git a/src/boot.clj b/src/boot.clj index f5889648..139a6950 100644 --- a/src/boot.clj +++ b/src/boot.clj @@ -1,5 +1,6 @@ (def list (fn [& args] args)) (def cons (fn [x seq] (. RT (cons x seq)))) +(def conj (fn [coll x] (. RT (conj coll x)))) (def defn (fn [name & fdecl] (list 'def name (cons 'fn fdecl)))) diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java index 5a2ce375..c3bc9bf7 100644 --- a/src/jvm/clojure/lang/Compiler.java +++ b/src/jvm/clojure/lang/Compiler.java @@ -1573,9 +1573,9 @@ static class FnExpr implements Expr{ IPersistentCollection methods = null; for(int i = 0; i < methodArray.length; i++) if(methodArray[i] != null) - methods = RT.conj(methodArray[i], methods); + methods = RT.conj(methods, methodArray[i]); if(variadicMethod != null) - methods = RT.conj(variadicMethod, methods); + methods = RT.conj(methods, variadicMethod); fn.methods = methods; fn.variadicMethod = variadicMethod; diff --git a/src/jvm/clojure/lang/OldCompiler.java b/src/jvm/clojure/lang/OldCompiler.java index 6d044508..2ae5d2d0 100644 --- a/src/jvm/clojure/lang/OldCompiler.java +++ b/src/jvm/clojure/lang/OldCompiler.java @@ -1193,9 +1193,9 @@ private static Expr analyzeFn(C context, ISeq form) throws Exception{ IPersistentCollection methods = null; for(int i = 0; i < methodArray.length; i++) if(methodArray[i] != null) - methods = RT.conj(methodArray[i], methods); + methods = RT.conj(methods, methodArray[i]); if(variadicMethod != null) - methods = RT.conj(variadicMethod, methods); + methods = RT.conj(methods, variadicMethod); fn.methods = methods; fn.variadicMethod = variadicMethod; @@ -1581,7 +1581,7 @@ private static void registerVar(Var var) throws Exception{ } private static void registerFn(FnExpr fn) throws Exception{ - FNS.set(RT.conj(fn, (IPersistentCollection) FNS.get())); + FNS.set(RT.conj((IPersistentCollection) FNS.get(), fn)); } static void closeOver(LocalBinding b, FnMethod method){ diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index 20f332f2..90da621a 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -211,10 +211,10 @@ public static int count(Object o){ return ((IPersistentCollection) o).count(); } -static public IPersistentCollection conj(Object x, IPersistentCollection y){ - if(y == null) +static public IPersistentCollection conj(IPersistentCollection coll, Object x){ + if(coll == null) return new PersistentList(x); - return y.cons(x); + return coll.cons(x); } static public ISeq cons(Object x, ISeq y){ |