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

欢迎!有关如何操作的更多信息,请参阅关于页面。

+1
Clojure
为了安全地测试一个任意的序列是否已实现(非懒加载),我们需要一个包装器,例如


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


如果 realzes? 对于非ISeq? 实例返回 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报告)
...