Node:SRFI-14 Iterating Over Character Sets, Next:, Previous:SRFI-14 Predicates/Comparison, Up:SRFI-14

39.12.4 Iterating Over Character Sets

Character set cursors are a means for iterating over the members of a character sets. After creating a character set cursor with char-set-cursor, a cursor can be dereferenced with char-set-ref, advanced to the next member with char-set-cursor-next. Whether a cursor has passed past the last element of the set can be checked with end-of-char-set?.

Additionally, mapping and (un-)folding procedures for character sets are provided.

char-set-cursor cs Scheme Procedure
Return a cursor into the character set cs.

char-set-ref cs cursor Scheme Procedure
Return the character at the current cursor position cursor in the character set cs. It is an error to pass a cursor for which end-of-char-set? returns true.

char-set-cursor-next cs cursor Scheme Procedure
Advance the character set cursor cursor to the next character in the character set cs. It is an error if the cursor given satisfies end-of-char-set?.

end-of-char-set? cursor Scheme Procedure
Return #t if cursor has reached the end of a character set, #f otherwise.

char-set-fold kons knil cs Scheme Procedure
Fold the procedure kons over the character set cs, initializing it with knil.

char-set-unfold p f g seed [base_cs] Scheme Procedure
char-set-unfold! p f g seed base_cs Scheme Procedure
This is a fundamental constructor for character sets.
  • g is used to generate a series of "seed" values from the initial seed: seed, (g seed), (g^2 seed), (g^3 seed), ...
  • p tells us when to stop - when it returns true when applied to one of the seed values.
  • f maps each seed value to a character. These characters are added to the base character set base_cs to form the result; base_cs defaults to the empty set.

char-set-unfold! is the side-effecting variant.

char-set-for-each proc cs Scheme Procedure
Apply proc to every character in the character set cs. The return value is not specified.

char-set-map proc cs Scheme Procedure
Map the procedure proc over every character in cs. proc must be a character -> character procedure.