Provides “tuples” for Clojure, with faster element access, otherwise behaving like Clojure’s vectors.
- add to your project.clj:
[tuples 0.0.3];=> (use 'tuples.core)
nil
;=> (tuple 1 2)
[1 2]
;=> (tuple 1 2 3)
[1 2 3]
;=> (tuple 1 2 3 4)
[1 2 3 4]
;=> (tuple 1 2 3 "foo")
[1 2 3 "foo"]
;=> (get0 (tuple 1 2 3 "foo"))
1
;=> (get3 (tuple 1 2 3 "foo"))
"foo";; run on a macbook pro with java 7 preview
;; Fri Oct 21 12:51:51 2011
tuples.core> (let [n 1e10 t (tuple 1 2) v (vector 1 2)]
(time (dotimes [_ n] (get0 t)))
(time (dotimes [_ n] (nth v 0))))
"Elapsed time: 7870.339 msecs"
"Elapsed time: 130419.589 msecs"
nil
tuples.core>
Copyright (C) 2012 Kevin Downey
Distributed under the Eclipse Public License, the same as Clojure.