Revised draft of SRFI 101 David Van Horn (20 Sep 2009 20:23 UTC)
Re: Revised draft of SRFI 101 Taylor R Campbell (20 Sep 2009 21:16 UTC)
Re: Revised draft of SRFI 101 David Van Horn (20 Sep 2009 22:16 UTC)
Re: Revised draft of SRFI 101 David Van Horn (22 Sep 2009 14:21 UTC)
Re: Revised draft of SRFI 101 Taylor R Campbell (23 Sep 2009 01:26 UTC)

Revised draft of SRFI 101 David Van Horn 20 Sep 2009 20:23 UTC

A revised draft of SRFI 101: Purely Functional Random-Access Pairs and
Lists is now available at:

    http://srfi.schemers.org/srfi-101/

Changes from initial draft:

Specification
-------------

* A `quote' form that produces random-access pairs when quoting
   syntactic pairs has been added.

* Examples have been rewritten to use `quote' where convenient and now
   more closely resembles the examples of R6RS.

* An issue inquiring about the scope of this SRFI has been added.
   Should the SRFI include bindings for all of (rnrs base) that deals
   with lists?

* A paragraph specifying that random-access pairs and lists are fully
   persistent has been added.  This paragraph was suggested and kindly
   provided by Alexey Radul.

* Procedure for converting between representation of lists have been
   added, following the suggestions of Taylor Campbell and Alexey
   Radul.

* A vector-like constructor, `make-list', which constructs a list
   using O(log n) space thanks to sharing, has been added.

Implementation
--------------

* The reference implementation is no longer completely portable.  It
   has been factored into a procedural and a syntactic portion.  The
   procedural portion is written in fully portable R6RS Scheme; the
   syntactic portion is written in implementation-specific libraries
   for Ikarus, Larceny, and PLT Scheme.

* Sub-libraries for the procedural and syntactic subset of the SRFI
   are now required (and provided).

* Improved test suite instructions are given for PLT Scheme to avoid
   installing the reference implementation as a collection, thus
   shadowing the srfi collection that ships with PLT.

* The reference implementation has been re-arranged into files
   according to common library name to file name mappings.

* A bug in the implementation of `list?' which had caused it to be
   O(n) has been fixed.  It is now O(log n) as required.

* The import clause of the test suite has been changed to include all
   of (rnrs base) except identifiers defined in SRFI 101, rather than
   only a small subset of (rnrs base), following the suggestion of
   Aubrey Jaffer.

Cosmetics
---------

* Procedure prototypes have been formatted so as to stand out more,
   following the suggestion of Taylor Campbell.  Prototypes now include
   return type and arity information.

* The term "sequential" has been replaced with "linear-access".

* Various typos have been fixed.