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

Re: importing srfi-101

Aubrey Jaffer wrote:
 | Date: Thu, 17 Sep 2009 13:50:12 -0400
 | From: David Van Horn <dvanhorn@xxxxxxxxxxxxxxx>
| | Aubrey Jaffer wrote:
 | > http://srfi.schemers.org/srfi-101/srfi-101-tests.sls contains an
 | > import statement:
| > | > ... What would be the import statement to have all the standard
 | > identifiers imported, excepting the list-related ones, which
 | > would come from srfi-101 (with their standard names)?
| | It would be: | | (import (except (rnrs base) cons car cdr ...etc...)
 |          (prefix (only (rnrs base) null?) r6:)
 |          (rnrs exceptions)
 |          (srfi :101))

I think having SRFI-101 shadow R6RS identifiers is the most common way
that SRFI-101 would be used.  As it stands now, every prospective user
must pour through the SRFI-101 specification to create the list of all
the identifiers it binds.  This duplication of effort serves no
purpose.  Please add a complete import statement (replacing ...etc...)
to the text of SRFI-101 as an example of use.

Thanks for the suggestion. I'll incorporate this into the next revision. As a convenience, I can just provide a library that is (rnrs base), except for the list stuff, which will come from (srfi :101), plus all the added bindings, like list-set, etc.

That brings up another issue. Should this SRFI provide a `quote' form that produces random-access pairs? Should this SRFI provide `vector->list', `list->vector', and so on, for all the things in the R6RS base library that consume or construct lists? Should a definition of `equal?' be given that works as you would expect for random-access pairs?