summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-09-15 21:55:21 +0000
committerRich Hickey <richhickey@gmail.com>2007-09-15 21:55:21 +0000
commitae704ada24e998ac243b207798b310675dc728bb (patch)
treedde8be48085d533d21090ce7e5d1fa7eede00016 /src
parented407170f65b744505bd64ea9b8203cb22a1e1ce (diff)
conj
Diffstat (limited to 'src')
-rw-r--r--src/boot.clj1
-rw-r--r--src/jvm/clojure/lang/Compiler.java4
-rw-r--r--src/jvm/clojure/lang/OldCompiler.java6
-rw-r--r--src/jvm/clojure/lang/RT.java6
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){