# Tools

Scheme software is required to run the .scm files in this section. The .ini and .edwin files in this section are customization files that can be loaded into Edwin, the MIT Scheme text editor.

## Scheme Substitution Model

Notes on the Scheme Substitution Model (PDF)

## Pattern Matching Code

- match.scm (SCM) Procedures for pattern matching with "context variables," as explained at the beginning of the file.
- eliza.scm (SCM) Procedures for a minimal "doctor" dialog program based on pattern matching. Illustrates use of "tilde" variables that match any number of items in a list; does not use context variables. Load "match.scm" before evaluating this file.
- deriv-simplify-rules.scm (SCM) Procedures for simplifying arithmetic expressions with simple derivatives, as explained at the beginning of the file. Load "match.scm" before evaluating this file.

## Scheme Substitution Model

- sm.scm (SCM) A Scheme Substitution Model interpreter based on pattern-matching rewrite rules. This file begins with a brief intro to the Scheme Substitution Model, along with further instructions for running the interpreter. Use a Loader file to load the interpreter.
- Loader files for the Interpreter (choose one):
  - mitscheme-loadsm.scm (SCM): To run the Scheme Substitution Model interpreter described in sm.scm (SCM) using MIT Scheme, evaluate this load-file in a directory containing match.scm (SCM) and sm.scm (SCM). (Make sure your Edwin/Emacs *scheme* buffer also has this directory as its working directory, (see (pwd) and (cd "filename") in the MIT Scheme references)
  - drscheme-loadsm.scm (SCM): To run the Scheme Substitution Model interpreter described in sm.scm (SCM ) using Rice U. DrScheme, evaluate this load-file in a directory containing match.scm (SCM) and sm.scm (SCM)
  - other-loadsm.scm (SCM ): To run the Scheme "Substitution Model" interpreter described in sm.scm using a Scheme implementation other than MIT Scheme or DrScheme, FILL IN THE BLANKS in this load-file as appropriate to the implementation, and then evaluate this load-file in a directory containing match.scm (SCM) and sm.scm (SCM)
- test-submodel.scm (SCM), politician.scm (SCM): Sample expressions to evaluate in the Substitution Model.
- Submodel with parallel convergence operator CNVG? cnvg-loadsm.scm (SCM), cnvg-sm.scm (SCM)

### Scheme Information

- The online Scheme repository is available. In particular, the latest official Scheme specification is in the Revised^5 Report on the Algorithmic Language Scheme, also available in PDF format (PDF).
- Introductory Scheme Texts
- Sample edwin customization file for Unix (EDWIN) and Windows (INI)