评论由: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}))