_评论由:xcthulhu_ 发布
例如,如果用户想要创建一个长度在 5 到 11 或 20 到 40 元素之间,由 `:a` 或 `:b` 关键字组成的向量生成器,他们必须编写如下内容:
(gen/fmap (fn [[n gens]] (take n gens))
(gen/tuple (spec/gen (spec/or :short (int-in 5 11)
:long (int-in 20 40)))
(gen/vector (gen/elements #{:a :b}) 40)))
使用此补丁,他们可以像这样编写:
(gen/let [length (spec/or :short (int-in 5 11)
:long (int-in 20 40))]
(repeat length #{:a :b}))