The Revised Report on SCHEME: A Dialect of LISP

SCHEME is a dialect of LISP. It is an expression-oriented, applicative order, interpreter-based language which allows one to manipulate programs as data. It differs from most current dialects of LISP in that it closes all lambda-expressions in the environment of their definition or declaration...

Full description

Bibliographic Details
Main Authors: Steele, Guy Lewis, Jr., Sussman, Gerald Jay
Language:en_US
Published: 2004
Online Access:http://hdl.handle.net/1721.1/6283
_version_ 1826209258914447360
author Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
author_facet Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
author_sort Steele, Guy Lewis, Jr.
collection MIT
description SCHEME is a dialect of LISP. It is an expression-oriented, applicative order, interpreter-based language which allows one to manipulate programs as data. It differs from most current dialects of LISP in that it closes all lambda-expressions in the environment of their definition or declaration, rather than in the execution environment. This has the consequence that variables are normally lexically scoped, as in ALGOL. However, in contrast with ALGOL, SCHEME treats procedures as a first-class data type. They can be the values of variables, the returned values of procedures, and components of data structures. Another difference from LISP is that SCHEME is implemented in such a way that tail-recursions execute without net growth of the interpreter stack. The effect of this is that a procedure call behaves like a GOTO and thus procedure calls can be used to implement iterations, as in PLASMA.
first_indexed 2024-09-23T14:20:00Z
id mit-1721.1/6283
institution Massachusetts Institute of Technology
language en_US
last_indexed 2024-09-23T14:20:00Z
publishDate 2004
record_format dspace
spelling mit-1721.1/62832019-04-11T01:10:54Z The Revised Report on SCHEME: A Dialect of LISP Steele, Guy Lewis, Jr. Sussman, Gerald Jay SCHEME is a dialect of LISP. It is an expression-oriented, applicative order, interpreter-based language which allows one to manipulate programs as data. It differs from most current dialects of LISP in that it closes all lambda-expressions in the environment of their definition or declaration, rather than in the execution environment. This has the consequence that variables are normally lexically scoped, as in ALGOL. However, in contrast with ALGOL, SCHEME treats procedures as a first-class data type. They can be the values of variables, the returned values of procedures, and components of data structures. Another difference from LISP is that SCHEME is implemented in such a way that tail-recursions execute without net growth of the interpreter stack. The effect of this is that a procedure call behaves like a GOTO and thus procedure calls can be used to implement iterations, as in PLASMA. 2004-10-04T14:48:35Z 2004-10-04T14:48:35Z 1978-01-01 AIM-452 http://hdl.handle.net/1721.1/6283 en_US AIM-452 14921231 bytes 11695167 bytes application/postscript application/pdf application/postscript application/pdf
spellingShingle Steele, Guy Lewis, Jr.
Sussman, Gerald Jay
The Revised Report on SCHEME: A Dialect of LISP
title The Revised Report on SCHEME: A Dialect of LISP
title_full The Revised Report on SCHEME: A Dialect of LISP
title_fullStr The Revised Report on SCHEME: A Dialect of LISP
title_full_unstemmed The Revised Report on SCHEME: A Dialect of LISP
title_short The Revised Report on SCHEME: A Dialect of LISP
title_sort revised report on scheme a dialect of lisp
url http://hdl.handle.net/1721.1/6283
work_keys_str_mv AT steeleguylewisjr therevisedreportonschemeadialectoflisp
AT sussmangeraldjay therevisedreportonschemeadialectoflisp
AT steeleguylewisjr revisedreportonschemeadialectoflisp
AT sussmangeraldjay revisedreportonschemeadialectoflisp