2017-02-26 6 views
0

일련의 문자열 모음을 나타내려고합니다. 내부 컬렉션은 모두 동일한 길이 여야합니다.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 (empty? %) 
     (apply = (map count %))))) 

같은 같은 사양을 명시 할

답변

1

그 것이다 가능성 세대,하지만 당신은 모두 하찮게을 통과 빈 수집 또는 하나 개의 요소의 컬렉션을, 것 중 하나를 얻을 것이다 것들의 대부분 길이 제한. 그 때문에 사용자 정의 gen이 필요합니다.