(realized? x)
Returns true if a value has been produced for a promise, delay, future or lazy sequence.
;; Create a promise
user> (def p (promise))
#'user/p ; p is our promise
;; Check if was delivered/realized
user> (realized? p)
false ; No yet
;; Delivering the promise
user> (deliver p 42)
#<core$promise$reify__5727@47122d: 42>
;; Check again if it was delivered
user> (realized? p)
true ; Yes!
;; Deref to see what has been delivered
user> @p
42
;; Note that @ is shorthand for deref
user> (deref p)
42
;; For lazy sequences
user=> (def r (range 5))
#'user/r
user=> (realized? r)
false
user=> (first r)
0
user=> (realized? r)
true
; As of Clojure 1.7.0 range returns a LongRange, not a LazySeq
; see https://groups.google.com/forum/#!topic/clojure/NFwHkZxUFuY
user=> (def r (lazy-seq (range 5)))
#'user/r
user=> (realized? r)
false
user=> (first r)
0
user=> (realized? r)
true