[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New version of SRFI 113



I have prepared a new revision of SRFI 113.  It currently resides
at <http://www.ccil.org/~cowan/temp/srfi-113.html>.  There has been a
substantial reduction in scope: the SRFI now includes only general sets,
general bags, and integer sets.  Character sets will be provided by the
existing SRFI 14 only.  Enumerations and enumeration sets will appear in
a future SRFI.  I am doing this in hopes that I will finally be able to
stop dinking with the specification and update the sample implementation
in the next pass.

I have added set-empty? and set-disjoint? predicates per Alex Shinn's
comments.

The following issues have been resolved:

12. Should we stick to just comparators, or also allow equality
predicates?  Just comparators.  For hash tables (which will be in a
future SRFI), there are backward compatibility considerations, but for
sets there are not.

13. Should we switch to six libraries (sets, bags, integer sets,
character sets, enum sets, and set-bag conversion), or stick with a single
library? (This is not about dividing the SRFI itself.)  Stick with a
single library for sets, bags, and integer sets.  Of course, enumeration
sets will be in a separate library.

14. Should we add a cursor API similar to SRFI 14's?  No.  A cursor is
only suitable for sets with a natural order of elements.

15. Should we add comparators for the various types?  No, because
unordered collections do not have any natural ordering.

Issue 8 is about enumerations and is no longer relevant to this SRFI.

The following issue is still outstanding:

16. What provisions should we have for controlling which element of a
set is preserved when a new element equal to an existing element is added?

-- 
John Cowan    cowan@xxxxxxxx    http://ccil.org/~cowan
   There was an old man                Said with a laugh, "I
     From Peru, whose lim'ricks all      Cut them in half, the pay is
       Look'd like haiku.  He              Much better for two."
                                             --Emmet O'Brien