2024 年 Clojure 调查!分享您的想法。

欢迎!请查看关于页面以获取更多有关如何使用本站的信息。

0
Spec

应指定一个生成大小为 4 或 5 的集合的规格,但实际上它生成的大小为 4 到 8 的集合

(require '[clojure.spec.alpha :as s] '[clojure.spec.gen.alpha :as gen]) (map count (gen/sample (s/gen (s/coll-of char? :min-count 4 :gen-max 5)))) ;; (4 7 8 8 4 7 4 5 5 7)

原因: s/every-impl 中的最大逻辑是: }。如果有最大计数,则使用它,否则使用 gen-max 或 2*min-count 中较大的一个。在本例中,2*min-count 是 8。看起来我们不应该生成超过 gen-max 的东西,因此建议将此逻辑更改为: }。

修复: clj-2202.patch

1 答案

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