[R6RS] Enumerations proposal pre-draft
William D Clinger
will at ccs.neu.edu
Sun Apr 23 10:54:40 EDT 2006
Mike quoting me:
> > I took the liberty of adding a few features, mainly to
> > show why I think it is better to add new functions than
> > new types.
> Could you give a hint as to what features those are exactly?
enum-set-universe and enum-set-subset?. Also notice the
subtle role played by the universe in the specification
of enum-set-subset? and enum-set=?.
> > <type-name> will be a procedure of no arguments that returns symbols
> > that comprise the enumeration type, in the same order as they were
> > specified.
> Why isn't <type-name> simply the list itself?
Because the R6RS is not expected to provide any way to
enforce immutability of a list. Furthermore, while both
lists and procedures can be compared in constant time via
eq?, the use of a list might confuse some programmers into
thinking that an equal? comparison would also recognize
the canonical representation of the enumeration type,
which it would not.
> Is this:
> > (color-index (color purple)) => 2
> supposed to be 'purple?
More information about the R6RS