mes: Add char-set-adjoin, char-set-complement.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 11 Nov 2018 09:08:03 +0000 (10:08 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sun, 11 Nov 2018 09:08:03 +0000 (10:08 +0100)
* mes/module/srfi/srfi-14.mes (char-set-adjoin, char-set-complement):
New function.

mes/module/srfi/srfi-14.mes

index a16d16ce57525fe905fa3072075250df598c76cb..d903f73cba1bb643d15e635ed2bebc53d2269139 100644 (file)
   (set-cdr! (last-pair base) (string->list x))
   base)
 
   (set-cdr! (last-pair base) (string->list x))
   base)
 
+(define (char-set-adjoin cs . chars)
+  (append cs chars))
+
 (define (char-set-contains? cs x)
   (and (memq x cs) #t))
 
 (define (char-set-contains? cs x)
   (and (memq x cs) #t))
 
+(define (char-set-complement cs)
+  (let ((ascii (map integer->char (iota 128))))
+    (list->char-set (filter (lambda (c) (not (char-set-contains? cs c))) ascii))))
+
 (define (char-whitespace? c)
   (char-set-contains? char-set:whitespace c))
 
 (define (char-whitespace? c)
   (char-set-contains? char-set:whitespace c))