Re: Returning keys/values as sets/bags? taylanbayirli@xxxxxx 08 Sep 2015 17:16 UTC

John Cowan <xxxxxx@mercury.ccil.org> writes:

> Taylan Ulrich Bayırlı/Kammer scripsit:
>
>> It makes "logical" sense to return the keys and values from
>> hash-table-keys and hash-table-values as sets and bags respectively,
>> since they have no order.
>
> It would be logical.  But, erm, the sample implementation of SRFI 113
> presumes hash tables.  So ....

Oh, hahaha, I didn't think of that.

>> Or maybe you don't want to intermingle your APIs *that* much (keep
>> dependency limited to SRFI-114)
>
> (grabs any excuse for cover) ... Sure.

Lists are fine, really. :-)

In my API I decided to support key/value/entry lists (the last
effectively hashtable->alist) after all, in addition to the
vector-returning variants from R6RS, because I imagine you really want
to filter, partition, find, or do other listy things on the results some
times, for which vectors aren't nice at all.  It feels like a wart, but
that's what I get for remaining backwards compatible with R6RS (although
I also still think there might be worth in returning vectors instead of
lists for efficiency reasons).

Taylan