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