Better Scheme
Specification 0.5b1
Jeff Walker
Summary
Introduction
Acknowledgments
1. Overview of Better 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 Structure
2.1 Identifiers
2.2 Whitespace and Comments
2.3 Literals
2.3.1 Boolean Literals
2.3.2 List Literals
2.3.3 Character Literals
2.3.4 String Literals
2.3.5 Vector Literals
2.3.6 Numeric Literals
2.3.7 Void
2.4 Other Notations
2.4.1 Evaluative Operator
2.4.2 Quote Operator
2.4.3 Reserved Notation
3. Basic Concepts
3.1 Variables and Regions
3.2 Disjointness of Types
3.3 External Representations
3.4 Storage Model
3.5 Proper Tail Recursion
3.6 Currying
4. Expressions
4.1 Variable Reference
4.2 Literal Expressions
4.3 Invocation
4.3.1 Function Calls
4.3.2 Unrestricted Function Calls
4.3.3 Continuation Calls
4.3.4 Macro Instantiation
4.4 Evaluative Operator
5. Standard Entities
5.1 Binding Constructs
5.1.1 Lambda
5.1.2 Mu
5.1.3 Let Constructs
5.1.3 Define
5.2 Flow Control
5.3 Assignment
5.4 Equivalence Predicates
5.5 Numbers
5.5.1 Numerical Types
5.5.2 Exactness
5.5.3 Implementation Restrictions?
5.5.4 Numerical Operations
5.5.5 Numerical Input & Output
5.6 Other Data Types
5.6.1 Booleans
5.6.2 Pairs and Lists
5.6.3 Symbols
5.6.4 Characters
5.6.5 Strings
5.6.6 Vectors
5.6.7 Void
5.7 Eval
5.8 Input and Output
6. Standard Libraries
jwalker@cs.oberlin.edu