Contents

    Introduction
            Background
            Acknowledgements

    1  Overview of Scheme
        1.1  Semantics
        1.2  Syntax
        1.3  Notation and terminology
            1.3.1  Primitive, library, 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

    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.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  Quasiquotation
        4.3  Macros
            4.3.1  Binding constructs for syntactic keywords
            4.3.2  Pattern language

    5  Program structure
        5.1  Programs
        5.2  Definitions
            5.2.1  Top level definitions
            5.2.2  Internal definitions
        5.3  Syntax definitions

    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  Syntax of numerical constants
            6.2.5  Numerical operations
            6.2.6  Numerical input and output
        6.3  Other data types
            6.3.1  Booleans
            6.3.2  Pairs and lists
            6.3.3  Symbols
            6.3.4  Characters
            6.3.5  Strings
            6.3.6  Vectors
        6.4  Control features
        6.5  Eval
        6.6  Input and output
            6.6.1  Ports
            6.6.2  Input
            6.6.3  Output
            6.6.4  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.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

    Notes
            Language changes

    Additional material

    Example

    Bibliography

    Alphabetic Index of Definitions of Concepts, Keywords, and Procedures