Arthur A. Gleckler scripsit:
> The name "bag" is clear, but since enumeration sets are provided as well,
> and use the prefix enum-set, it makes sense to use multi-set (hyphenated)
> for consistency.
I think that might be too much consistency. In particular, enum-sets
are sets, but multisets/bags are not sets. (Similarly, a white lion is
a lion, but a stone lion is not a lion, merely a statue that somewhat
resembles a lion.)
> > 8) Should we switch to unique enum objects rather than symbols?
> >
>
> I don't see the use case for yet another type.
I'm leaving this open for a while.
> > 9) The word "set" is heavily overloaded. Should we use "gset" or
> > "generic-set"?
>
> No. The meaning is clear from context.
There seems to be consensus, so closing this one.
> Here are a few additional comments on the draft:
>
> - The definition of make-set says that string-ci=? must be supported.
> Shouldn't string=? be supported, too, then?
That follows from the requirement to support any predicate that is not
coarser than `equal?`. In any case, I suspect this language will go away
if comparators become accepted (see CowanComparators for an early draft).
> - Why does the non-empty constructor, set, have a different name than
> the empty-set constructor, make-set?
Well, people expect both make-foo and foo. I suppose make-foo could take
an optional argument which would be one element, allowing it to construct
either an empty or a singleton set.
> - Should set-find take a parameter that specifies what value to return
> when the searched-for element is not found? That would solve the problem
> with #f.
Done.
> - Set operations should include an operation that adds an element to a
> set, returning a newly allocated set, but which does not require wrapping
> the new element in a set that is going to be thrown away immediately. In
> other words, there should be a functional analog to set-add!.
The natural name for this would be set-add, but that may cause confusion.
Added as an issue, though.
--
John Cowan xxxxxx@ccil.org http://ccil.org/~cowan
Assent may be registered by a signature, a handshake, or a click of a computer
mouse transmitted across the invisible ether of the Internet. Formality
is not a requisite; any sign, symbol or action, or even willful inaction,
as long as it is unequivocally referable to the promise, may create a contract.
--Specht v. Netscape