SRFI Support

The SRFIs (Scheme Requests For Implementations) is an Internet-based collection of Scheme code designed and provided by Scheme programmers. The SRFI effort is open to anyone, and is described at http://srfi.schemers.org.

The fundamental SRFI is SRFI-0, "Feature-based conditional expansion construct", which allows a program to query the underlying implementation about the available SRFIs (and potentially about other implementation features) at macro expansion time. The design documents for this and other SRFIs are available at the web site shown above.

Larceny 1.0a2 has built-in support for SRFI-0, SRFI-6 and SRFI-11. In addition, a procedural interface to SRFI-0 is provided that allows the programmer to add new SRFI keys and to perform interactive queries about supported SRFIs.

It is useful to be able to add SRFI keys dynamically because many SRFIs are implementable in standard Scheme and can be provided by third parties. For example, the reference implementation for SRFI-7 will work "out of the box" if loaded into Larceny, but programs cannot discover its presence until SRFI-0 has been made aware of its presence.

Larceny 1.0a2 also provides the following nonstandard SRFI keys:

    larceny
    larceny-1.0a2
    r5rs
    r4rs
The previous release of Larceny did not provide any SRFI support.

Procedure srfi0-add-key!

(srfi0-add-key! key) => unspecified

Add the symbol key to the list of keys recognized by the SRFI-0 implementation.

Procedure srfi0-keys

(srfi0-keys) => list

Return a list of symbols naming the SRFIs that are currently supported.


$Id: srfi.html,v 1.1 2000/09/12 21:22:50 lth Exp $
larceny@ccs.neu.edu