Portable Scheme guide (R7RS)

Command line options

These command line flags put Scheme implementations in R7RS mode:

Chibi-Scheme

chibi-scheme (R7RS mode is the default)

Chicken

csc -R r7rs and csi -R r7rs

Cyclone

cyclone and icyc (R7RS mode is the default)

Gambit

gsc -:r7rs and gsi -:r7rs

Gauche

gosh -r 7

Gerbil

gxi --lang r7rs

Guile

guile --r7rs

Kawa

kawa --r7rs

Larceny

larceny -r7rs

Sagittarius

sagittarius -r 7 and sash -r 7

R7RS Large Edition

These are SRFIs most widely supported by R7RS implementations, and on track to be included in the upcoming Large Edition of the R7RS language. Right now, it’s generally best to use the SRFI imports to get at these libraries. The R7RS-large library names are not yet as portable.

Task Current SRFI import Future R7RS-large import Edition

List library

(srfi 1)

(scheme list)

Red

Charset library

(srfi 14)

(scheme charset)

Red

Streams library

(srfi 41)

(scheme stream)

Red

Functional, random-access pairs and lists

(srfi 101)

(scheme rlist)

Red

Boxes

(srfi 111)

(scheme box)

Red

Sets and bags

(srfi 113)

(scheme set)

Red

Regular expressions

(srfi 115)

(scheme regex)

Tangerine

Immutable lists

(srfi 116)

(scheme ilist)

Red

Queued-based lists

(srfi 117)

(scheme list-queue)

Red

Generators

(srfi 121)

(scheme generator)

Red

Ephemerons

(srfi 124)

(scheme ephemeron)

Red

Hash tables

(srfi 125)

(scheme hash-table)

Red

Lazy sequences

(srfi 127)

(scheme lseq)

Red

Comparators

(srfi 128)

(scheme comparator)

Red

Sort libraries

(srfi 132)

(scheme sort)

Red

Vector library

(srfi 133)

(scheme vector)

Red

Immutable deques

(srfi 134)

(scheme ideque)

Red

Immutable strings

(srfi 135)

(scheme text)

Red

Integer division

(srfi 141)

(scheme division)

Tangerine

Flonums

(srfi 144)

(scheme flonum)

Tangerine

Mappings

(srfi 146)

(scheme mapping)

Tangerine

Bitwise operations

(srfi 151)

(scheme bitwise)

Tangerine

Generators

(srfi 158)

(scheme generator)

Tangerine

Combinator Formatting

(srfi 159)

(scheme show)

Tangerine

Homogeneous vectors

(srfi 160)

(scheme vector @)

Tangerine

Byte vectors

R6RS bytevectors

(scheme bytevector)

Tangerine

R7RS Large Edition dockets

R7RS-large is developed by assigning candidate SRFIs to color dockets that concern different aspects of the language. Over time, the language working group (WG2) selects the most appropriate SRFIs from each docket to go into the final language.

Docket Concerns

Red

data structures

Tangerine

numerics

Orange

numerics

Amber

syntax

Yellow

syntax

Lime

portable

Green

non-portable

Olive

non-portable

Aqua

portable but complex things

Blue

portable but advanced things

Indigo

stuff of dubious utility

Other SRFIs

The following SRFIs are the most widely supported ones for tasks that R7RS-large is not currently planned to cover:

Task SRFI import

Environment variables

(srfi 98)

Contributing

doc.scheme.org is a community subdomain of scheme.org.