This page is part of the web mail archives of SRFI 13 from before July 7th, 2015. The new archives for SRFI 13 contain all messages, not just those from before July 7th, 2015.
From: lucier@xxxxxxxxxxxxxxx
Date: Sun, 17 Dec 2000 22:44:02 -0500 (EST)
What about predicate->char-set on large (Unicode or larger) character sets?
I'd certainly not want to call a function 65536 times (or 2^32 times) just
to construct a char-set. And a user may not know that a Scheme
implementation has two-byte or four-byte characters. (How many people know
that Gambit has 2-byte chars by default?) I just don't see how it's really
helpful to have this function, and I think it should be eliminated.
I have similar, but less strongly pronounced, difficulties with
char-set-invert.
Valid concerns, but it can't be helped. People frequently describe sets of
things by predicate; you need a way to convert that into a true set.
You absolutely need a complete set of set operators, and set complement
is no more inefficient that set intersection or union or any of the other
ops.
There is a role for these ops, even in implementations where they are
expensive. For example, to define sets that are essentially read-only
once defined. It's acceptable to crunch a little bit defining the char set
at program initialisation time.
This is simply more evidence that textual computing in a rich-text world
is not an easy thing.
-Olin