R5RS
- 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