请在2024年Clojure调查问卷!中分享您的想法。

欢迎!请参阅关于页面以了解更多有关该功能的信息。

+1
Clojure
为了安全地测试一个任意的seq是否已实现(非惰性的),我们需要一个包装器如:


(defn seq-realized? [s]
  (if (instance? clojure.lang.IPending s)
    (realized? s)
    true))


如果{{realized?}}对于一个不是{{IPending}}的({{ISeq}})实例返回了true,则对于像{{(realized? (range 10))}}这样的情况,将会出现更少令人惊讶的行为,因为它会引发异常。

NB: CLJ-1751的后继。

4个答案

0

评论者:marc

附上一个补丁,使realized?能对非挂起的xs返回true。

0

评论者:marc

取消 - 补丁不可用。

0

评论者:marc

附上一个补丁,使realized?能对非挂起的xs返回true。增加了对IPending类型的测试。

0
参考: https://clojure.atlassian.net/browse/CLJ-1752(由 alex+import 报告)
...