For a list or queue, same as first, for a vector, same as, but much
more efficient than, last. If the collection is empty, returns nil.
user=> (def large-vec (vec (range 0 10000))) #'user/large-vec user=> (time (last large-vec)) "Elapsed time: 1.279841 msecs" 9999 user=> (time (peek large-vec)) "Elapsed time: 0.049238 msecs" 9999
(defn peek
"For a list or queue, same as first, for a vector, same as, but much
more efficient than, last. If the collection is empty, returns nil."
{:added "1.0"
:static true}
[coll] (. clojure.lang.RT (peek coll)))
Comments top
1 comment(s) for peek.
Small reminder:
Do not work for arbitrary seq but just for persistent types implementing clojure.lang.IPersistentStack (like clojure.lang.Persistent*).
Example:
do not work because type is clojure.lang.Cons but
works because type is clojure.lang.PersistentList.
Do not work for arbitrary seq but just for persistent types implementing clojure.lang.IPersistentStack (like clojure.lang.Persistent*).
Example: do not work because type is clojure.lang.Cons but works because type is clojure.lang.PersistentList.