Fix prime-splitting list/e bug

This commit is contained in:
Max New 2014-10-15 22:27:04 -04:00
parent 01f8ff5eb8
commit d4b5d1897e
2 changed files with 7 additions and 3 deletions

View File

@ -1365,14 +1365,15 @@
[(cons factor '())
(prime-length-box-list/e es)]
[(cons factor factors)
(define chunk-size (/ (length es) factor))
(define chunk/es
(for/list ([es (in-list (chunks-of es factor))])
(for/list ([es (in-list (chunks-of es chunk-size))])
(loop factors es)))
(map/e
(λ (chunks)
(apply append chunks))
(λ (xs)
(chunks-of xs factor))
(chunks-of xs chunk-size))
(prime-length-box-list/e chunk/es))]))]))
(define (prime-length-box-list/e es)

View File

@ -216,7 +216,10 @@
(check-bijection? nats*bool)
(check-bijection? nats*nats)
(check-bijection? (list/e integer/e integer/e)))
(check-bijection? (list/e integer/e integer/e))
(check-bijection? (apply list/e
(for/list ([i (in-range 24)])
(map/e (curry cons i) cdr nat/e)))))
;; fair product tests