Contents

    Introduction

    1  Overview of Scheme
        1.1  Semantics
        1.2  Syntax
        1.3  Notation and terminology
            1.3.1  Base and optional features
            1.3.2  Error situations and unspecified behavior
            1.3.3  Entry format
            1.3.4  Evaluation examples
            1.3.5  Naming conventions

    2  Lexical conventions
        2.1  Identifiers
        2.2  Whitespace and comments
        2.3  Other notations
        2.4  Datum labels

    3  Basic concepts
        3.1  Variables, syntactic keywords, and regions
        3.2  Disjointness of types
        3.3  External representations
        3.4  Storage model
        3.5  Proper tail recursion

    4  Expressions
        4.1  Primitive expression types
            4.1.1  Variable references
            4.1.2  Literal expressions
            4.1.3  Procedure calls
            4.1.4  Procedures
            4.1.5  Conditionals
            4.1.6  Assignments
            4.1.7  Inclusion
        4.2  Derived expression types
            4.2.1  Conditionals
            4.2.2  Binding constructs
            4.2.3  Sequencing
            4.2.4  Iteration
            4.2.5  Delayed evaluation
            4.2.6  Dynamic bindings
            4.2.7  Exception handling
            4.2.8  Quasiquotation
            4.2.9  Case-lambda
        4.3  Macros
            4.3.1  Binding constructs for syntactic keywords
            4.3.2  Pattern language
            4.3.3  Signaling errors in macro transformers

    5  Program structure
        5.1  Programs
        5.2  Import declarations
        5.3  Variable definitions
            5.3.1  Top level definitions
            5.3.2  Internal definitions
            5.3.3  Multiple-value definitions
        5.4  Syntax definitions
        5.5  Record-type definitions
        5.6  Libraries
            5.6.1  Library Syntax
            5.6.2  Library example
        5.7  The REPL

    6  Standard procedures
        6.1  Equivalence predicates
        6.2  Numbers
            6.2.1  Numerical types
            6.2.2  Exactness
            6.2.3  Implementation restrictions
            6.2.4  Implementation extensions
            6.2.5  Syntax of numerical constants
            6.2.6  Numerical operations
            6.2.7  Numerical input and output
        6.3  Booleans
        6.4  Pairs and lists
        6.5  Symbols
        6.6  Characters
        6.7  Strings
        6.8  Vectors
        6.9  Bytevectors
        6.10  Control features
        6.11  Exceptions
        6.12  Environments and evaluation
        6.13  Input and output
            6.13.1  Ports
            6.13.2  Input
            6.13.3  Output
        6.14  System interface

    7  Formal syntax and semantics
        7.1  Formal syntax
            7.1.1  Lexical structure
            7.1.2  External representations
            7.1.3  Expressions
            7.1.4  Quasiquotations
            7.1.5  Transformers
            7.1.6  Programs and definitions
            7.1.7  Libraries
        7.2  Formal semantics
            7.2.1  Abstract syntax
            7.2.2  Domain equations
            7.2.3  Semantic functions
            7.2.4  Auxiliary functions
        7.3  Derived expression types

    A  Standard Libraries

    B  Standard Feature Identifiers

    Language changes

    Additional material

    Example

    References

    Alphabetic index of definitions of concepts, keywords, and procedures