为了安全地测试一个任意的seq是否已实现(非惰性的),我们需要一个包装器如:
(defn seq-realized? [s]
(if (instance? clojure.lang.IPending s)
(realized? s)
true))
如果{{realized?}}对于一个不是{{IPending}}的({{ISeq}})实例返回了true,则对于像{{(realized? (range 10))}}这样的情况,将会出现更少令人惊讶的行为,因为它会引发异常。
NB: CLJ-1751的后继。