- Try Scheme in your browser (slow, bare-bones)
- This site's guide to Installing Scheme
- This site's entry-level explanation of the differences between Scheme, OCaml, and Haskell
- A bit about comments and brackets is available here; and then more details about how to do some OCaml-ish and Haskell-ish things in Scheme, and how to get Scheme-ish continuations in OCaml, are here
Tutorials
- Welcome to Racket from Racket Guide
- Chicken Getting started
If you are new to programming or if you have the patience to do so, you should work through a textbook:
- a recommended text available online is Teach Yourself Scheme in Fixnum Days
- the Little Schemer book(s) we recommended for the seminar are good introductions, requiring more commitment
- How to Design Programs (HtDP),
by Matthias Felleisen, et al., is another good choice, which the Racket group recommends
(the 1st ed is also available, and covers some additional topics like mutation; whenever the book says "Scheme," you can read it as "Racket")
If you're already a programmer and you're in more of a hurry:
- you could look at the Quick Introduction to Racket, which uses DrRacket and a picture-drawing library
- or An Introduction to Lambda Calculus and Scheme
Advanced Racket Docs
- Racket Guide starts with a tutorial, then describes the rest of the Racket language. Intended for programmers who are new to (at least some part of) Racket. If you are new to programming, you should instead start with one of the textbooks listed above. Describes parts of the Racket language that go beyond the learning-oriented fragments of HtDP.
- Racket Reference defines the core Racket language and its most prominent libraries. Less friendly than Racket Guide, but more precise and complete.
- #lang r5rs,
'cons
expressesmcons
- #lang r6rs or #!r6rs
- Supported SRFIs
- Libraries and collections
- (require data)
- (require math)
- racket/enter and rerequire
- Debugging | the Stepper
- Deploying
- raco cmdline tool
- Macros in Guide | Reference
- Macro debugger
- Racket: latest release | blog | wiki
- Style guidelines
- raco pkg package manager | repository
- Racket source | bugs
- Extending Racket
- Typed Racket Guide | Reference
- Lazy Racket
- PLT Redex, for specifying and testing operational semantics
Advanced Chicken Docs
- (declare (uses unit)) vs (include "path")
- Using csi | csc | deploying
- Supported language | standards
- FAQ
- Chicken development | process | bugs
- chicken-setup
- chicken-install
- Eggs: managing | authoring (more) | repository
- Distributed egg repos
- Tutorial on writing eggs: 1 2 3
- Data model | internals | FFI
Other Scheme Links
The Scheme language is standardized; the various implementations of the language usually adhere to what's published in the current standard and add on different handy extensions. The first standard was published in 1975. A revision was published a few years later called "The revised report on Scheme, a dialect of Lisp." Thereafter, revisions of the standard were titled "The Revised Revised Report..." and so on, or "The Revisedn Report..." for short. One widely implemented standard is The Revised5 Report on Scheme, or R5RS, published in 1998. Another standard R6RS (libraries) was ratified in 2007, but had many detractors and wasn't fully accepted in the community. Currently Scheme is being split into a lean minimal base, now ratified as R7RS-small (errata), and a richer language R7RS-large (still being designed) that standardizes many add-ons.
- The Scheme Programming Language/4ed, by R. Kent Dybvig (errata)
- Structure and Interpretation of Computer Programs/2ed (SICP)
- Programming Languages: Application and Interpretation/2ed
- The Adventures of a Pythonista in Schemeland
- Comparing Chicken to C, Python, and Perl
- Chicken for Pythonistas
- Haskell vs Scheme
- Chicken Tips and tricks
- The Schematics Scheme Cookbook is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
- Stack Overflow questions tagged "scheme"
- Scheme Wiki
- Documents at Schemers.org