Scheme is a dialect of the LispLanguage concentrating on the “functional” subset of Lisp that introduced lexical scoping, closures, first class continuations (to Lisp). Originally developed by GeraldSussman and GuySteele, the language has a very concise and clear standard (see R5RS. Many schemers are proud of the fact that the R5RS Scheme standard is about 50 pages, shorter than the index table of the CommonLisp specification (see KentPitman’s posts for another opinion[1][2][3]).

It is widely used for teaching and research of programming language semantics, and was influential on the design of CommonLisp.

Guile is one of the GNU implementations of Scheme which may one day lurk in the bowels of a future release of Emacs instead of EmacsLispGuileEmacs.

An existing implementation of Emacsen in Scheme is called EdWin and exists as part of the MitSlashGnuScheme implementation.

‘M-x run-scheme’ will run an external Scheme program for you. It is provided by CmuScheme.

The default program name is ‘scheme’. If your copy of scheme is called ‘guile’ or something other, customize the variable ‘scheme-program-name’.

RunSchemeHere is a CmuScheme extension that allows you to easily run multiple inferior scheme processes.

For a really good interface for writing Scheme, check SlimeMode.

For Scheme, a new Emacs mode is available: Geiser. It supports Guile and Racket (previously known as PLT Scheme). On Debian or Ubuntu, it can be installed with sudo apt-get install geiser.

For a really nice mode for Racket Scheme and other Schemes (Guile), see QuackMode.

There is also a hacked up completion mode for Plt Scheme which does what the plt help desk does: PltCompletions

For Scheme documentation lookup, see InfoLook and SchemeLookup.

SchemeComplete provides R5Rs and some SRFI symbols completion and ElDoc support.

For running R6RS scripts with Ikarus and jumping to source locations displayed as part of a error message from Ikarus, there is ikarus-script.el.

A great textbook that uses Scheme is StructureAndInterpretationOfComputerPrograms.

There is a Scheme interpreter written in EmacsLisp by NoahFriedman:

A simpler interpreter written in EmacsLisp that supports a smaller core set of Scheme was written by KalleOlaviNiemitalo (q.v. follow the link).