summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/clj/clojure/core.clj4
-rw-r--r--src/jvm/clojure/lang/ArrayChunk.java2
-rw-r--r--src/jvm/clojure/lang/RT.java12
3 files changed, 17 insertions, 1 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 6ff4a4c7..ab80af3d 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -849,6 +849,8 @@
(defn count
"Returns the number of items in the collection. (count nil) returns
0. Also works on strings, arrays, and Java Collections and Maps"
+ {:tag Integer
+ :inline (fn [x] `(. clojure.lang.RT (count ~x)))}
[coll] (. clojure.lang.RT (count coll)))
;;list stuff
@@ -869,6 +871,8 @@
bounds, nth throws an exception unless not-found is supplied. nth
also works for strings, Java arrays, regex Matchers and Lists, and,
in O(n) time, for sequences."
+ {:inline (fn [c i] `(. clojure.lang.RT (nth ~c ~i)))
+ :inline-arities #{2}}
([coll index] (. clojure.lang.RT (nth coll index)))
([coll index not-found] (. clojure.lang.RT (nth coll index not-found))))
diff --git a/src/jvm/clojure/lang/ArrayChunk.java b/src/jvm/clojure/lang/ArrayChunk.java
index 92240440..3d3d645a 100644
--- a/src/jvm/clojure/lang/ArrayChunk.java
+++ b/src/jvm/clojure/lang/ArrayChunk.java
@@ -12,7 +12,7 @@
package clojure.lang;
-public class ArrayChunk implements Indexed{
+public final class ArrayChunk implements Indexed{
final Object[] array;
final int off;
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 2053273d..0a33f55a 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -493,6 +493,12 @@ static public IPersistentMap meta(Object x){
return null;
}
+public static int count(Counted o){
+ if(o != null)
+ return o.count();
+ return 0;
+}
+
public static int count(Object o){
if(o instanceof Counted)
return ((Counted) o).count();
@@ -711,6 +717,12 @@ static public Object dissoc(Object coll, Object key) throws Exception{
return ((IPersistentMap) coll).without(key);
}
+static public Object nth(Indexed coll, int n){
+ if(coll != null)
+ return coll.nth(n);
+ return null;
+}
+
static public Object nth(Object coll, int n){
if(coll instanceof Indexed)
return ((Indexed) coll).nth(n);