Scheme

A dialect of the Lisp family of Programming Language. A Lisp-1 with a single symbol namespace. Various version of Scheme have been published as a series of academic publications starting in 1975. Features include lexical scope, guaranteed tail-call optimization, and lazy evaluation. Generally known for being very minimalist.

(www.scheme.org) The Scheme Programming Language   scheme lisp programming_language programming computer_science website

ROAM_REFS: https://www.scheme.org/ https://www.scheme.org/schemers/

The new Scheme community site that documents a lot of Scheme resources. It hosts a snapshot of the old schemers.org website. The old schemers.org site redirects to https://www.scheme.org/schemers/—for now.

  • Scheme

Scheme is a classic programming language in the Lisp family. It emphasizes functional programming and domain-specific languages but adapts to other styles. Known for its clean and minimalist design, Scheme is one of the longest-lived and best-studied dynamic languages, and has many fast and portable implementations.

From the Scheme standard reports:

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.

** What's new in Scheme

More on Planet Scheme.

** Language

Try Scheme Type Scheme code and run it in your browser
FAQ Frequently asked questions about Scheme
Books Published books
Cookbook Code snippets that solve common problems
Standards Revisedn Report on Scheme and other standards
SRFI Scheme Requests for Implementation
Research Dive into the academic research behind Scheme

** Community

Community Scheme gathering spots around the internet
Workshop The Scheme and Functional Programming Workshop
Events Conferences and other meetups
Planet Blog posts from every corner of the Scheme community
Video Videos about Scheme
Lists Mailing lists for email discussion of many Scheme topics
Wiki Scheme community wiki
Groups Work groups

** Implementations

Get Scheme Browse and compare all known Scheme systems  
Bigloo Scheme-to-C and Scheme-to-JVM compiler  
Chez Scheme Cross-module optimizing native-code compiler R6
Chibi-Scheme Small embeddable interpreter with many optional libraries R7
CHICKEN Scheme-to-C compiler with a big, friendly community R7
Cyclone New Scheme-to-C compiler with native threads R7
Gambit Concurrent, retargetable, optimizing compiler R7
Gauche Script interpreter with many built-in libraries R7
Gerbil Scheme with actors and objects built on Gambit R7
Guile Main Scheme implementation of the GNU project R6 R7
JazzScheme Object-oriented GUI and IDE built on Gambit  
Kawa JVM compiler with many extensions to Scheme R7
Loko Bare-metal native-code compiler R6 R7
MIT/GNU Scheme Native-code compiler and development environment R7
Mosh Complete R6RS interpreter R6 R7
Racket Native-code compiler R6 R7
s7 Embeddable interpreter for music applications R7
Sagittarius Script interpreter with many built-in libraries R6 R7
SCM Portable C implementation that begat Guile and SLIB  
STklos Interpreter with CLOS object-oriented GUI R7
Ypsilon Incremental native-code compiler with concurrent GC R6 R7

** Tools

Index Library search using types, tags, and names
Containers Ready-to-run Docker containers
Documentation Study Scheme implementations and libraries
Manual pages Unix manual pages for tools and libraries
Conservatory Preservation of old software and websites
Files Archive of current and historical files
Gitea Host Git repositories under Scheme.org
Go Scheme URL shortening service
Jenkins Continuous Integration (CI)
Registry Catalog of identifiers and other data

About Scheme.org | Source

(try.scheme.org)

ROAM_REFS: https://try.scheme.org/

If you have programmed before but are new to Scheme, you should

to get to know the language better.

The first pane, the REPL, is where the user interacts with the interpreter. The REPL is an ideal place to try out code snippets and debug code.

The second pane is the editor area. It allows creating and editing files that are local to the browser and accessible to Scheme code as files in the root directory, i.e. "

/
". The files will persist in the browser between sessions. Use the "
+
" tab in the editor area to create new files and open existing files.

(conservatory.scheme.org) Welcome to schemers.org!   website

ROAM_REFS: https://conservatory.scheme.org/schemers/

Snapshot of the old schemers.org site.

([[https://conservatory.scheme.org/schemers/Welcome/][welcome]] '(schemers . org))

I intend this but for a Scheme of a larger Design.
–Woodward, Nat. Hist. Earth, 1723


News Items and Announcements

Please check out the Scheme workshops from 2014, 2015, 2016 (with videos), 2017 (with videos), 2018 (with videos), and 2019 (with videos).

Manuel Serrano was invited to give a seminar on Hop to the Collège de France.

Now that both R6RS and R7RS Small have been ratified, work has begun on R7RS Large.

Blogspace is alive with good Scheme articles. See Planet Scheme! You can also find some articles linked from here.

Check out the Scheme Meetup site.

The Regular Fare

(case (what-would-you-like-to-do?)
  ((learn)
   (choose-from FAQ
                textbooks
                videos
                blogs
                standards
                tutorials
                other documents
                education))
  ((program)
   (choose-from implementations
                libraries
                environments
                Reqests for Implementation (SRFI)))
  ((socialize)
   (choose-from ABQ Lisp/Scheme - Albuquerque, NM, USA
                Bay Area Lisp & Scheme - Bay Area, CA, USA (videos)
                Boston Lisp Announce - Boston, MA, USA
                Scheme UK - London, UK
                munich-lisp - Munich, Germany
                CRACL - Los Angeles, CA, USA
                Lambdaheads - Vienna, Austria
                FringeDC - Washington, DC, USA))
  ((work)
   (choose-from jobs))
  ((stay-informed)
   (choose-from events))
  (else
   (choose-from the lighter side
                wares
                other resources)))

(If you're looking for the fine folks of Schemers Inc., they're at www.schemers.com.)

(en.wikipedia.org) Scheme (programming language) - Wikipedia   website

ROAM_REFS: https://en.wikipedia.org/wiki/Scheme_(programming_language)

Scheme is a dialect of the Lisp family of programming languages. Scheme was created during the 1970s at the MIT Computer Science and Artificial Intelligence Laboratory (MIT CSAIL) and released by its developers, Guy L. Steele and Gerald Jay Sussman, via a series of memos now known as the Lambda Papers. It was the first dialect of Lisp to choose lexical scope and the first to require implementations to perform tail-call optimization, giving stronger support for functional programming and associated techniques such as recursive algorithms. It was also one of the first programming languages to support first-class continuations. It had a significant influence on the effort that led to the development of Common Lisp.

The Scheme language is standardized in the official Institute of Electrical and Electronics Engineers (IEEE) standard and a de facto standard called the Revisedn Report on the Algorithmic Language Scheme (R/n/RS). A widely implemented standard is R5RS (1998). The most recently ratified standard of Scheme is "R7RS-small" (2013). The more expansive and modular R6RS was ratified in 2007. Both trace their descent from R5RS; the timeline below reflects the chronological order of ratification.

Local Graph

org-roam 745de98a-8445-4622-9020-877901f1a7cf Guy L. Steele Jr. 6246f8d4-6cd4-489d-b19f-9c1142b51b60 Scheme 745de98a-8445-4622-9020-877901f1a7cf->6246f8d4-6cd4-489d-b19f-9c1142b51b60 84ae6e85-a6a2-4133-bc53-274238081c2d Lisp 6246f8d4-6cd4-489d-b19f-9c1142b51b60->84ae6e85-a6a2-4133-bc53-274238081c2d b24601aa-09df-41e1-aa7e-25ead342db34 Programming Language 6246f8d4-6cd4-489d-b19f-9c1142b51b60->b24601aa-09df-41e1-aa7e-25ead342db34 097f1b09-ad77-4307-b9df-71c6124ed7d6 Rethinking Common Lisp's =format= Fun... 097f1b09-ad77-4307-b9df-71c6124ed7d6->6246f8d4-6cd4-489d-b19f-9c1142b51b60 eac73a7d-f14b-4ec4-bc18-08d864e6c4c0 Emacs Lisp eac73a7d-f14b-4ec4-bc18-08d864e6c4c0->6246f8d4-6cd4-489d-b19f-9c1142b51b60 84ae6e85-a6a2-4133-bc53-274238081c2d->6246f8d4-6cd4-489d-b19f-9c1142b51b60 9af45692-b2f1-4d4e-a9b3-03d355ffacd0 Guix 9af45692-b2f1-4d4e-a9b3-03d355ffacd0->6246f8d4-6cd4-489d-b19f-9c1142b51b60 18a1ad86-a00c-437a-b253-ba0d24299574 (www.scheme.org) The Scheme Programmi... 18a1ad86-a00c-437a-b253-ba0d24299574->6246f8d4-6cd4-489d-b19f-9c1142b51b60 db0939e6-0c2e-4bb0-a626-2114209235af JavaScript, aka ECMAScript db0939e6-0c2e-4bb0-a626-2114209235af->6246f8d4-6cd4-489d-b19f-9c1142b51b60 064be3a0-bb32-4312-9868-73e9c77ba7cf Guile 064be3a0-bb32-4312-9868-73e9c77ba7cf->6246f8d4-6cd4-489d-b19f-9c1142b51b60 2ce20b11-e9e9-48b0-ab32-de7f4158ea33 Racket 2ce20b11-e9e9-48b0-ab32-de7f4158ea33->6246f8d4-6cd4-489d-b19f-9c1142b51b60