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

Revised draft of SRFI 101

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


Changes from initial draft:


* 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

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


* 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.


* 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.