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