This page is part of the web mail archives of SRFI 44 from before July 7th, 2015. The new archives for SRFI 44 contain all messages, not just those from before July 7th, 2015.
On Thu, Jul 31, 2003 at 09:32:59AM +0200, Jens Axel S?gaard wrote: > >(define (myfunc a) > > (set-contains? a 3)) > > > >(myfunc (foo-set 1 2 3)) > >(myfunc (bar-set 4 5 6)) > > > For two reasons I prefer the naming make-mydict, mydict-get. > First, if I need a dictionary often it is unimportant how it is implemented, > second, I can change the implementation easyly as Oleg describes. > > Whether the implementation is able to make automatic dispath on the > type of set in set-contains? is not /that/ important (to mee). My > intution says > that it's relatively seldom one needs to use more than one implementation > at a time (but it can happen). I see this more frequently than you'd think. Its not so much that *you* would write code that uses two collections of the same type, but it happens frequently when joining in modular code from more than one subsystem, especially where that system publishes an API which you write for where you need to be deliberately unaware of certain implementation details. This is especially important for maintenance of the resulting system. Especially as Scheme systems start (and continue) to offer compiled modules, programmers or sysadmins may want to upgrade package Foo. If Foo changes its selection of the underlying set collection, it would be onerous to require all packages that depend on it to be modified at the source code level to remain compatible. I'm pretty confident that allowing truely collection agnostic code is quite necessary. Scott
Description: PGP signature