Scheme is a minimalist dialect of Lisp created by Guy Steele and Gerald Jay Sussman. Its elegant design and focus on fundamental concepts made it the language of choice for teaching computer science for decades.
Origins
Steele and Sussman created Scheme at MIT in 1975 while exploring the actor model of computation. They discovered that actors and closures were essentially the same concept, leading to a beautifully minimal language design.
Key Features
Scheme emphasizes simplicity and conceptual clarity:
- Lexical scoping: Variables bound in the enclosing scope
- First-class continuations: Capture and restore program state
- Tail-call optimization: Guaranteed efficient recursion
- Minimal core: Only essential primitives included
- Macros: Extend the language through code transformation
SICP
Scheme became famous through “Structure and Interpretation of Computer Programs” (SICP), the MIT introductory computer science textbook. The book used Scheme to teach programming as thinking, not just coding.
Influence
Scheme influenced many languages:
- JavaScript: First-class functions and closures from Scheme
- Ruby: Block syntax inspired by Scheme
- Lua: Influenced by Scheme’s minimalism
- Common Lisp: Incorporated Scheme innovations
- Racket: Modern descendant with rich ecosystem