2024 Clojure调查中分享您的想法!

欢迎!请查看关于页面以获取更多关于这是如何工作的信息。

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


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


如果{{realized?}}对于不是{{ISeq}}?的实例(例如({{IPending}}})返回true,那么在如{{(realized? (range 10))}}这样的情况下会有更少的意外行为,它将抛出异常。

注意:是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报告)
...