Created at MIT in the 1970s, the Scheme programming language is a dialect of Lisp.
Scheme was influenced by Clojure, Common Lisp, Dylan, EuLisp, Haskell, Hop, JavaScript, Julia, Lua, MultiLisp, Python, R, Racket, Ruby, Rust, S, Scala, and T. Its chief developers were Guy L. Steele and Gerald Jay Susman.
One of the goals for Scheme was for it to be minimalist. It emphasizes functional programming and domain-specific languages, although it adapts to other styles. Known for its clean and minimalist design, Scheme is one of the longest-lived and best-studied dynamic programming languages, and it has several portable implementations.
Scheme standard reports state, "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 among the first programming languages to include first-class procedures, which are similar to the functions in the lambda calculus. This feature demonstrated the usefulness of static scope rules and block structure in a dynamically typed language. Lisp, on the other hand, was the first major dialect of Lisp to distinguish procedures from lambda expressions and symbols and to evaluate the operator position of a procedure call in the same way as an operand position while using a single lexical environment for all variables.
Scheme is similar to Common Lisp and Ci, in that the programming language is based around a well-known standard with many implementations and the people who designed the language are no longer active with its continued development and maintenance. Given that the founders are gone, there is no one Scheme community associated with the language, although several sub-communities have formed. The most official of these is known as the Steering Committee, which approves revisions of the standard, although it is not involved in the day-to-day affairs of the language. Most Scheme communities are gathered around Scheme's major implementations and the Scheme Workshop.
The Scheme language is standardized in the official Institute of Electrical and Electronics Engineers (IEEE) standard, and a defacto standard called the Revised Report on the Algorithmic Language Scheme (RnRS). A widely implemented standard is R5RS (1998), and the most recently ratified standard (as of this writing) is R7RS-small (2013).
The more expansive and modular R6RS was ratified in 2007. Currently, the newest releases of various Scheme implementations support the R6RS standard, which introduced significant changes to the language. The source code is now specified in Unicode, as is character data.
The R7RS standard was controversial because many developers considered it to be a departure from the minimalist philosophy of Scheme. In 2009, the Scheme Steering Committee announced its intention to split Scheme into two languages: a large modern programming language for programmers, and a small version that retained the minimalism loved by educators and casual implementors. This is represented in the release of R7RS-small in 2013.
The focus of this part of our programming language web guide is on the Scheme programming language, including those related to its development and maintenance, IDEs or editors designed to ease Scheme programming, and other projects closely related to the language.
Categories
KawaRacket | T (language) |
 
 
Recommended Resources
Chez Scheme is both a programming language and an implementation of that language, with supporting tools and documentation. Licensed under the Apache License Version 2.0, Chez Scheme supports all standard features of Scheme, while including extensive support for interfacing with C and other languages, support for multiple threads possibly running on multiple cores, non-blocking I/O, and other features. An introduction, download links, documentation, and project issues are included.
https://cisco.github.io/ChezScheme/
EDUCBA: Scheme Programming Course Bundle
Founded by IIT IIM graduates, EDUCBA is a global provider of skill-based education, and an online provider offering courses across a large variety of fields. Its Scheme programming course bundle includes four courses in one, with twelve hours of video tutorials and lifetime access for those who sign up for the course. Courses are self-paced and include case studies, technical support, mobile app access, and verifiable course completion certificates for each course.
https://www.educba.com/software-development/courses/scheme-programming-course/
GNU Operating System: MIT/GNU Scheme
GNU is a free software operating system that began as a project by Richard Stallman in 1983. Its development is known as the GNU Project. MIT/GNU Scheme is an implementation of the Scheme programming language suited to programming large applications with a rapid development cycle. It provides an interpreter, compiler, source-code debugger, integrated Emacs-like editor, and a large runtime library. Release status, future plans, and downloads are included.
https://www.gnu.org/software/mit-scheme/
First appearing in 2006, Hop is a Lisp-like programming language created by Manuel Serrano. Written in Bigloo Scheme, its development was funded by INRIA. An introduction to the language is provided, including programming examples. Hop is free software, under the GNU General Public License as published by the Free Software Foundation. It may be downloaded from the site via binary, source code, or Docket installations. A complete installation guide is provided, along with development notes.
http://hop.inria.fr/
The homepage for the Scheme programming language at the Massachusetts Institute of Technology (MIT), particularly its Computer Science and Artificial Intelligence Laboratory (CSAIL), introduces Scheme, a dialect of the Lisp programming language that was designed to have simple and clear semantics with few ways to form expressions. Links to its program files, documentation, other implementations of Scheme, and other information and resources are included.
https://groups.csail.mit.edu/mac/projects/scheme/
Introduced in the 1970s, Scheme is a classic programming language in the Lisp family. The official website for Scheme features an overview of the language, lists books that have been published about the language, and posts a Cookbook of code snippets solving common problems, reports on Scheme and other standards, requests for implementation, and academic research behind the programming language. Links to community sites, implementations, and tools are included.
https://www.scheme.org/
A list of standard textbooks, the Little Schemer series, newer textbooks, those on using or implementing the programming language, and printed manuals are provided here. The majority are published by MIT Press, which makes sense, since the language was developed at MIT. Many of the books may be viewed on the web or downloadable in PDF format, and links are provided, as well as to the publisher. For some, links to the author page, or sample chapters, are also included.
https://books.scheme.org/
An implementation of Lisp, Scheme is similar to Common Lisp and C in that the language is based on a well-known standard with several implementations, and the people who developed the languages are no longer actively involved. Since the founders are no longer active, no one has a natural right to own the communities around these languages. The most official Scheme group is the Steering Committee, which approves revisions of the standard, but there are several sub-communities.
https://community.scheme.org/
Scheme Programming Language: A Comprehensive Guide
Hosted on ThemeWaves, which provides tutorials, tips, tricks, and other resources for WordPress development and Elementor page builders, this section of the site features a guide to programming in Scheme. Included is an overview of the programming language, from its roots as a Lisp derivative to its emphasis on functional programming, lexical scoping, and tail recursion. The key concepts of the language are explained, and implementations and tools are introduced.
https://themewaves.com/scheme-programming-language-a-comprehensive-guide/
An official website of Scheme, a programming language in the Lisp family, this website provides information about the language, its standards, and implementations. Reports from the Scheme working groups, its public discussion forum, the public review process for the language, steering committee working documents, Scheme requests for implementation, and Scheme reports in PDF format are provided here, with links to applicable official and unofficial resources.
http://scheme-reports.org/