Better items->entries routine
This commit is contained in:
parent
9a0697e3c5
commit
86b74cd807
|
@ -24,13 +24,12 @@
|
||||||
(require syndicate/schemas/dataspacePatterns)
|
(require syndicate/schemas/dataspacePatterns)
|
||||||
|
|
||||||
(define (items->entries pats)
|
(define (items->entries pats)
|
||||||
(define-values (entries max-i)
|
(define npats (length pats))
|
||||||
(for/fold [(entries (hash)) (max-i #f)]
|
(define entries
|
||||||
[(i (in-naturals)) (p (in-list pats))]
|
(for/fold [(entries (hash))] [(i (in-naturals)) (p (in-list pats))]
|
||||||
(values (if (Pattern-discard? p) entries (hash-set entries i p))
|
(if (Pattern-discard? p) entries (hash-set entries i p))))
|
||||||
i)))
|
(if (and (positive? npats) (not (hash-has-key? entries (- npats 1))))
|
||||||
(if (and max-i (not (hash-has-key? entries max-i)))
|
(hash-set entries (- npats 1) (Pattern-discard))
|
||||||
(hash-set entries max-i (Pattern-discard))
|
|
||||||
entries))
|
entries))
|
||||||
|
|
||||||
(define (entries->items entries on-missing)
|
(define (entries->items entries on-missing)
|
||||||
|
|
Loading…
Reference in New Issue