Scheme is a programming language that belongs to the family of Lisp-like languages. It is a statically scoped and properly tail-recursive dialect of the Lisp programming language. Scheme was designed to have an exceptionally simple syntax and semantics. The language supports features like higher-order functions, first-class continuations, and a rich set of primitive data types, including strings, numbers, characters, and booleans. Scheme has been widely used in the fields of computer science, artificial intelligence, and robotics.

Scheme was first introduced in 1975 by Guy L. Steele Jr. and Gerald Jay Sussman at the Massachusetts Institute of Technology (MIT). The language was designed as a means of exploring the concept of a “universal” language that could be used for a variety of applications. Scheme was developed as a research language to investigate the theoretical foundations of computing and programming languages. As such, it has become an important tool for teaching and research in computer science and related fields.

At the core of Scheme is a set of core primitives that control the flow of the program. These primitives are written using a combination of the prefix, infix, and postfix notation. This notation allows for the expression of complex mathematical and logical operations and the formation of recursive functions. The core primitives are the basis for a set of higher-level abstractions, such as macros, which allow programmers to create programs with greater complexity and control.

Scheme also has a powerful type system. This type system allows for the specification of types for data structures and functions, which helps to ensure the correctness of programs. The types can be used to specify the types of values, the types of arguments, the types of return values, and the types of return values of nested functions.

Scheme is a powerful language that is suitable for a wide variety of applications. Its simple syntax and semantics make it easy to learn and use. Its powerful type system ensures that programs are type-safe and correct. Its powerful abstractions allow for the creation of complex programs, and its core primitives enable the expression of complex mathematical and logical operations.


Deutsch, P. (2020). A gentle introduction to Scheme. Lisp & Symbolic Computation, 13(1-2), 7-32.

Kelsey, R., Rees, J., & Clinger, W. (1998). Revised6 report on the algorithmic language Scheme. Technical Report.

Steele, G. L., Jr., & Sussman, G. J. (1975). Scheme: An Interpreter for Extended Lambda Calculus. Artificial Intelligence, 17(1), 35-77.

Scroll to Top