peek

added
1.0

ns
clojure.core

type
function

(peek coll)

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

            
                user=> (peek '(:a :b :c))
:a
            
                user=> (peek [1 2 3 4])
;;=> 4

user=> (peek [])
;;=> nil

user=> (peek '(1 2 3 4))
;;=> 1

user=> (peek '())
;;=> nil

user=> (peek nil)
;;=> nil