Scheme

(opened on 22.03.95)

What is Scheme?

Scheme is a wondrous language; it contains everything really necessary in a language, without most of the ballast. Most importantly, it differentiates between a tiny core of essential special forms and a large rest of derivable special forms, primitives, and types. Scheme is LISP done right, unharnessing the power of full lexical closures, but without the hacks that infest tradition-bound Common-LISP (reader macros, property lists, dynamic bindings).

Scheme is defined in Revised^(2,3,4) Reports on the Scheme Programming Language, it also has an IEEE/ANSI standard (IEEE Standard 1178-1990, "IEEE Standard for the Scheme Programming Language", published by IEEE in 1991. ISBN 1-55937-125-0.) that mostly coincides with R4RS.

Up to and including R3RS, there was no formalized definition of a macro facility, and every implementation had a different one. R4RS introduced hygienic macros, a humungous definition of "clean" macros that avoided the well-known unique-name-creation and name-clashing problems. Much gnashing of teeth ensued, since many people need macros only for the most primitive tasks, and think the hygienic macro facility to be massive overkill.

Another bone of contention is the non-presence of an eval in the standard, but the presence of load and various file-access functions.

Finally, some implementors think that a Scheme without call/cc could be implemented more efficiently and would fill a real-world ecological niche. (There are already enough Schemes without call/cc out there, but they have to live without blessing by the standards.)

R5RS is supposed to include (different) macros, eval, dynamic-wind and multiple return values.


Scheme Sites and Pages


The Scheme FAQ.

(22.03.95: still there)


The R4RS is available as HTML via ftp (MIT).

(22.03.95: address seemed ok, but transfer timed out on me)


The Scheme Page at the CS department of Trinity College, Dublin, contains another R4RS, a JACAL reference manual, another SLIB manual, and a SCM manual.

(22.03.95: astonishingly good connection from Berlin)


The Scheme home page at MIT includes a nifty little form that lets you execute small examples of Scheme code.

(22.03.95: still there.)


The Scheme Underground
``is a new effort starting between LCS and the AI Lab to develop useful software packages in Scheme for use by research projects and for distribution on the net.''
(22.03.95: still there.)

Implementations


(24.03.95) Announcement of the Hobbit Scheme compiler, revision 4a.
(22.03.95) OScheme announcement

People



Etc.


SLIB is a library of Scheme functions; a Good Thing (TM). According to the comp.lang.scheme FAQ, the canonical places for the SLIB source are

swiss-ftp.ai.mit.edu:/archive/scm/slib2a1.tar.gz
prep.ai.mit.edu:/pub/gnu/jacal/slib2a1.tar.gz
ftp.cs.indiana.edu:/pub/scheme-repository/new/slib2a1.tar.g

This html version of its documentation (rev. 0.95, for SLIB version 1d2, May 1993) (a sterling example of ugly and inefficient markup) was helpfully generated by the texi2html converter. Thank the godess that there aren't any mathematical formula in the texinfo source.

(22.03.95: this is a local copy, and therefore not likely to change)


(28.03.95) scsh is a Unix shell written in Scheme. Don't know any details, the ftp server was so slow i couldn't even retrieve the README this morning. Current version (1.4M) and manual (458k) of 25-dec-94.
This page is part of the Trash Heap.