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

欢迎!请在关于页面查看有关此如何工作的更多信息。

+1 投票
Clojure
为了安全地测试任意序列是否已实现(非懒序列),我们需要一个像这样的包装器


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


如果{{realized?}}对于非{{IPending}}的({{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报告)
...