7.7.2 R7RS Standard Libraries

The R7RS organizes the definitions from R5RS into modules, and also adds a few new definitions.

We do not attempt to document these libraries fully here, as unlike R6RS, there are few new definitions in R7RS relative to R5RS. Most of their functionality is already in Guile’s standard environment. Again, the expectation is that most Guile users will use the well-known and well-documented Guile modules; these R7RS libraries are mostly useful to users who want to port their code to other R7RS systems.

As a brief overview, we note that the libraries defined by the R7RS are as follows:

(scheme base)

The core functions, mostly corresponding to R5RS minus the elements listed separately below, but plus SRFI-34 error handling (see SRFI-34 - Exception handling for programs), bytevectors and bytevector ports (see Bytevectors), and some miscellaneous other new procedures.

(scheme case-lambda)


(scheme char)

Converting strings and characters to upper or lower case, predicates for if a characer is numeric, and so on.

(scheme complex)

Constructors and accessors for complex numbers.

(scheme cxr)

cddr, cadadr, and all that.

(scheme eval)

eval, but also an environment routine allowing a user to specify an environment using a module import set.

(scheme file)

call-with-input-file and so on.

(scheme inexact)

Routines that operate on inexact numbers: sin, finite?, and so on.

(scheme lazy)


(scheme load)

The load procedure.

(scheme process-context)

Environment variables. See SRFI-98 Accessing environment variables.. Also, commmand-line, emergency-exit (like Guile’s primitive-_exit), and exit.

(scheme r5rs)

The precise set of bindings exported by r5rs, but without transcript-off / transcript-on, and also with the auxiliary syntax definitions like _ or else. See Syntax-rules Macros, for more on auxiliary syntax.

(scheme read)

The read procedure.

(scheme repl)

The interaction-environment procedure.

(scheme time)

current-second, as well as current-jiffy and jiffies-per-second. Guile uses the term “internal time unit” for what R7RS calls “jiffies”.

(scheme write)

display, write, as well as write-shared and write-simple.

For complete documentation, we advise the interested user to consult the R7RS directly (see R7RS in The Revised^7 Report on the Algorithmic Language Scheme).