Try Scheme in your web browser

Initial Tutorials

If you are new to programming or if you have the patience to do so, you should work through a textbook.

  • A warmly-recommended introduction available online is Teach Yourself Scheme in Fixnum Days This is a short introductory text that introduces common Scheme techniques.

  • The Little Schemer book(s) we recommended for the seminar are good introductions, requiring some more commitment.

  • How to Design Programs, by Matthias Felleisen, et al., is another good choice, which the Racket groups recommends. 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 instead look at:

More details

  • After any of the preceding, you could move on to Racket Guide. This starts with a tutorial on Racket basics; then it describes the rest of the Racket language. This guide is intended for programmers who are new to Racket or new to some part of Racket. It assumes programming experience, so if you are new to programming, you should instead start with one of the textbooks listed above. This Guide describes parts of the Racket language which go beyond the learning-oriented fragments of How to Design Programs.

Even more details

  • The Complete Racket Reference Manual defines the core Racket language and describes its most prominent libraries. The Racket Guide is friendlier; though less precise and less complete.

  • 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 in 1978 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 Revised^n Report..." for short. One widely implemented standard is The Revised^5 Report on Scheme, or R5RS, published in 1998. A new standard R6RS (Libraries for R6RS) was ratified in 2007, and this is implemented in Racket; but it also has many detractors and has not been fully accepted in the community. As a result, the Scheme language may in the future split into a lean, minimal base, closer to R5RS Scheme, and a richer language like R6RS Scheme that standardizes many of the add-ons that programmers tend to build on top of the base.

  • Scheme FAQ

  • The Scheme Programming Language, by R. Kent Dybvig (errata)