Thanks for adding the set library. I am looking forward to using these in *SL.




On Feb 23, 2010, at 9:16 AM, Matthew Flatt wrote:

I don't see how it's a problem to add new constructors in the future
and to liberalize the contracts on the `set' functions for those future
variants. I'll readily concede, however, to anyone who wants to do the
work of improving the current first cut.

At Tue, 23 Feb 2010 08:53:18 -0500, Sam Tobin-Hochstadt wrote:
On Tue, Feb 23, 2010 at 8:35 AM, Matthew Flatt <[email protected]> wrote:
At Mon, 22 Feb 2010 20:39:54 -0500, Carl Eastlund wrote:
I appreciate the addition of sets to PLT datatypes, but the
implementation just added to the trunk is very specific to immutable, hash table-based sets. In the spirit of scheme/dict, which allows for a variety of more interesting dictionary representations, can we leave
scheme/set open to other representations of sets?

Does something in the current `scheme/set' API preclude future
extensibility (e.g., adding `prop:set')?

The following aspects of `scheme/set' seem designed-in to the current API:

- that elements must not be mutated (even if there were other
implementations, the fact that the primary one has this restriction
means that it's not safe)
- the three comparison functions are written in to the API, rather
than being extensible (which would be hard to change given the current
implementation, since those are the hash functions that are allowed)

One nice way to improve this would be to have a concept of 'hash
sets', where (hash-set? s) implies (set? s).  That leaves open the
door to equality based or comparison based sets in the future. Almost
all of the API would stay the same, but the constructors and
predicates would change.
--
sam th
[email protected]
_________________________________________________
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-dev

_________________________________________________
 For list-related administrative tasks:
 http://list.cs.brown.edu/mailman/listinfo/plt-dev

Reply via email to