Clojure 为什么可以';我不能在等级库生成器中使用字符alpha吗?
我使用的规范如下所示:Clojure 为什么可以';我不能在等级库生成器中使用字符alpha吗?,clojure,clojure.spec,Clojure,Clojure.spec,我使用的规范如下所示: (ns废话 (:需要[clojure.spec.alpha:as s] [clojure.spec.gen.alpha:as gen])) (s/def::用户 (s/与gen (s/和字符串?#(重新匹配#“^[a-zA-Z]{3,20}$”%)) #(发电机/字符串字母数字))) 它在生成示例时工作正常,尽管经常达到100次尝试的限制。我真的想要一个gen/string alpha,尽管这个生成器不可用 当我试图做到这一点时: #(gen/fmap clojure.
(ns废话
(:需要[clojure.spec.alpha:as s]
[clojure.spec.gen.alpha:as gen]))
(s/def::用户
(s/与gen
(s/和字符串?#(重新匹配#“^[a-zA-Z]{3,20}$”%))
#(发电机/字符串字母数字)))
它在生成示例时工作正常,尽管经常达到100次尝试的限制。我真的想要一个gen/string alpha
,尽管这个生成器不可用
当我试图做到这一点时:
#(gen/fmap clojure.string/join(gen/vector gen/char alpha 3 20))
…它说“向量的第一个参数必须是生成器”
为什么
gen/char alpha
(哪个clojure.test.check.generators
)不工作?我需要阅读文档:
clojure.spec.gen.alpha/char-alpha
([&args])
Fn返回clojure.test.check.generators/char-alpha
正确的形式是:
#(gen/fmap clojure.string/join(gen/vector(gen/char-alpha)320))