What is scheme?

Scheme is a programming language in the Lisp family. The Scheme language report is called RnRS, or the Revised^n Report on Scheme, for increasing values of n; the current revision of the report is R7RS?. There is also an IEEE-standard, but it is very old, and the RnRS reports are the de facto Scheme standards.

An illustrative difference between Common Lisp and Scheme standards is that the index of the ANSI Common Lisp specification is larger than the entirety of the Scheme report: R5RS is about 50 pages, while Common Lisp's ANSI specification draft standard is approximately 1100 pages long.

However, most Scheme implementations provide many extensions to the standard and a few are comparable in size with Common Lisp implementations. Some of those extensions are formalized as SRFIs, or Scheme Requests for Implementation.

Scheme is characterized fundamentally by:

How can I learn it?

If you are new to programming read SICP or HtDP. If you already know how to program read Teach-Yourself-Scheme and TSPL. More texts can be found at category-texts. Find out about choosing your-first-implementation. There's a further list of implementations at category-implementations. Categories that would interest you would be category-learning-scheme and category-code .

Where is it defined?

Currently Scheme is defined in the standard R5RS which supersedes the IEEE standard. Some implementations may follow an older version of the standard: please consult the implementation's documentation for what it supports.