(r5rs.info.gz) Introduction
Info Catalog
(r5rs.info.gz) Top
(r5rs.info.gz) Top
(r5rs.info.gz) Overview of Scheme
Introduction
************
Menu
* Background
* Acknowledgements
Programming languages should be designed not by piling feature on top of
feature, but by removing the weaknesses and restrictions that make
additional features appear necessary. Scheme demonstrates that a very
small number of rules for forming expressions, with no restrictions on
how they are composed, suffice to form a practical and efficient
programming language that is flexible enough to support most of the
major programming paradigms in use today.
Scheme was one of the first programming languages to incorporate first
class procedures as in the lambda calculus, thereby proving the
usefulness of static scope rules and block structure in a dynamically
typed language. Scheme was the first major dialect of Lisp to
distinguish procedures from lambda expressions and symbols, to use a
single lexical environment for all variables, and to evaluate the
operator position of a procedure call in the same way as an operand
position. By relying entirely on procedure calls to express iteration,
Scheme emphasized the fact that tail-recursive procedure calls are
essentially goto's that pass arguments. Scheme was the first widely
used programming language to embrace first class escape procedures,
from which all previously known sequential control structures can be
synthesized. A subsequent version of Scheme introduced the concept of
exact and inexact numbers, an extension of Common Lisp's generic
arithmetic. More recently, Scheme became the first programming
language to support hygienic macros, which permit the syntax of a
block-structured language to be extended in a consistent and reliable
manner.
Info Catalog
(r5rs.info.gz) Top
(r5rs.info.gz) Top
(r5rs.info.gz) Overview of Scheme
automatically generated byinfo2html