From d7e65edc966af744eb76340b382b521f22515109 Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Tue, 13 May 2014 21:55:43 +0900 Subject: [PATCH] Adding char-set-fold and char-set-for-each. --- lib/chibi/char-set.sld | 1 + lib/chibi/char-set/extras.scm | 6 ++++++ lib/chibi/char-set/extras.sld | 1 + 3 files changed, 8 insertions(+) diff --git a/lib/chibi/char-set.sld b/lib/chibi/char-set.sld index 85183d74..4889e33a 100644 --- a/lib/chibi/char-set.sld +++ b/lib/chibi/char-set.sld @@ -4,6 +4,7 @@ (export Char-Set char-set? char-set-contains? char-set ucs-range->char-set char-set-copy char-set-size + char-set-fold char-set-for-each list->char-set char-set->list string->char-set char-set->string char-set-adjoin! char-set-adjoin char-set-union char-set-union! char-set-intersection char-set-intersection! diff --git a/lib/chibi/char-set/extras.scm b/lib/chibi/char-set/extras.scm index 41d81121..96846e42 100644 --- a/lib/chibi/char-set/extras.scm +++ b/lib/chibi/char-set/extras.scm @@ -10,6 +10,12 @@ (define char-set-size iset-size) +(define (char-set-fold kons knil cset) + (iset-fold (lambda (i acc) (kons (integer->char i) acc)) knil cset)) + +(define (char-set-for-each proc cset) + (iset-for-each (lambda (i) (proc (integer->char i))) cset)) + (define (list->char-set ls) (list->iset (map char->integer ls))) (define (char-set->list cset) diff --git a/lib/chibi/char-set/extras.sld b/lib/chibi/char-set/extras.sld index 632dbf27..ccfc812f 100644 --- a/lib/chibi/char-set/extras.sld +++ b/lib/chibi/char-set/extras.sld @@ -4,6 +4,7 @@ (include "extras.scm") (export char-set ucs-range->char-set char-set-copy char-set-size + char-set-fold char-set-for-each list->char-set char-set->list string->char-set char-set->string char-set-adjoin! char-set-adjoin char-set-union char-set-union! char-set-intersection char-set-intersection!