Email list hosting service & mailing list manager


Re: Updated issues list for SRFI 113 John Cowan 03 Jun 2013 07:10 UTC

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