Next: MrEdDrScheme, and mzc Up: PLT MzScheme: Language Manual Previous: Thanks

# Introduction

The core of the Scheme programming language is described in Revised5 Report on the Algorithmic Language Scheme. This manual assumes familiarity with Scheme and only contains information specific to MzScheme. (Many sections near the front of this manual simply clarify MzScheme's position with respect to the standard report.)

MzScheme (pronounced ``Ms. Scheme'' or ``Miz Scheme'') is nearly R5RS-compliant. MzScheme does not provide the `define-syntax`, `let-syntax`, and `letrec-syntax` forms, although they are partially supported by an external library. All other R5RS syntactic forms and procedures are provided by MzScheme with their prescribed semantics. Certain parameters in MzScheme can change features affecting R5RS-compliance; for example, case-sensitivity can be enabled (see section 9.4.1.3).

MzScheme provides several notable extensions to R5RS Scheme:

- A class and object system (see Chapter 6).
- A unit system for separate compilation of program components (see Chapter 7).
- An exception system that is used for all primitive errors (see Chapter 8).
- Pre-emptive threads and multiple global variable namespaces (see Chapter 9).

MzScheme can be run as a stand-alone application, or it can be embedded within other applications. Most of this manual describes the language that is common to all uses of MzScheme. For information about running the stand-alone version of MzScheme, see Chapter 16.

- MrEd, DrScheme, and `mzc`
- Notation