Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何使用spec定义大小相等的集合序列?(可能吗?)_Clojure_Clojure.spec - Fatal编程技术网

Clojure 如何使用spec定义大小相等的集合序列?(可能吗?)

Clojure 如何使用spec定义大小相等的集合序列?(可能吗?),clojure,clojure.spec,Clojure,Clojure.spec,我希望表示字符串集合的序列。内部集合应具有相同的长度 我最初的尝试是这样的 (s/def ::stuff (s/every (s/coll-of string?) :min-count 1)) 但当我练习这个时,我会得到不同长度的内部集合 是否有一种声明性的方式来指定所有长度都应该相同?或者这只能在规范的自定义生成器函数中指定吗?我会将规范声明为 (s/def ::stuff (s/and (s/every (s/coll-of string?)) #(or (emp

我希望表示字符串集合的序列。内部集合应具有相同的长度

我最初的尝试是这样的

(s/def ::stuff (s/every (s/coll-of string?) :min-count 1))
但当我练习这个时,我会得到不同长度的内部集合


是否有一种声明性的方式来指定所有长度都应该相同?或者这只能在规范的自定义生成器函数中指定吗?

我会将规范声明为

(s/def ::stuff 
  (s/and 
    (s/every (s/coll-of string?)) 
    #(or (empty? %) 
         (apply = (map count %)))))
这很可能是gen,但您将得到的大部分内容要么是空集合,要么是一个元素的集合,这两个元素都会通过长度约束。为此,您需要一个定制的gen