for/bag and for/bag/count

This commit is contained in:
Tony Garnock-Jones 2018-05-03 22:09:13 +01:00
parent 58695351d9
commit 8acfaab8f8
1 changed files with 5 additions and 0 deletions

View File

@ -12,6 +12,8 @@
bag-key-count
in-bag
in-bag/count
for/bag/count
for/bag
set->bag
bag->set)
@ -59,6 +61,9 @@
(define-syntax-rule (in-bag piece ...) (in-hash-keys piece ...))
(define-syntax-rule (in-bag/count piece ...) (in-hash piece ...))
(define-syntax-rule (for/bag/count iters expr ...) (for/hash iters expr ...))
(define-syntax-rule (for/bag iters expr ...) (for/bag/count iters (values (begin expr ...) 1)))
(define (set->bag s [count 1])
(for/hash [(e (in-set s))]
(values e count)))