Scheme Programming Language
www.scheme.org
2
Leaving SiteNav
External Link Disclaimer
You are about to visit www.scheme.org. This website is not operated by us. We are not responsible for its content or privacy practices.
About this website
Scheme is a minimalist, functional programming language in the Lisp family, known for its clean design, tail-call optimization, and first-class continuations. Created by Gerald Jay Sussman and Guy Steele at MIT in 1975, Scheme emphasized elegance and simplicity, influencing many subsequent language designs. Key features: minimal core syntax with only a few fundamental forms, demonstrating that powerful languages can be built from simple primitives. First-class functions and closures with lexical scoping, making functional programming natural and efficient. Proper tail-call optimization guaranteed by the language specification, enabling recursion without stack overflow and supporting iterative algorithms in functional style. First-class continuations via call-with-current-continuation (call/cc) enabling advanced control flow including coroutines, generators, backtracking, and cooperative multitasking. Hygienic macros via syntax-rules and syntax-case for pattern-based code transformation that respect lexical scoping. Multiple values return (values and call-with-values) for efficient multi-return. Dynamic-wind for managing dynamic contexts and cleanup actions. Delayed evaluation via promises (delay and force) for lazy evaluation. Scheme Requests for Implementation (SRFI) process for standardizing library interfaces across implementations. Multiple implementations including Chez Scheme (fast native compiler), Racket, Guile (GNU extension language), Gambit, Chicken (compiles to C), Gerbil, MIT Scheme, BiwaScheme (JavaScript), and more. Standardization through the Revised Report series including R5RS (minimal), R6RS (comprehensive), and R7RS (small and large variants). Used in education (SICP textbook), Emacs (Guile), media processing (GIMP Script-Fu), and research. Influenced JavaScript, Clojure, Racket, and Julia.
Statistics
2
Views
0
Clicks
0
Like
0
Dislike