## Scheme in a nutshell - Scheme is a dialect of the [Lisp](http://en.wikipedia.org/wiki/Lisp_\(programming_language\)) programming language developed in the 70s, that inherently supports *[functional programming](http://en.wikipedia.org/wiki/Functional_programming)* but is easily *[multi-paradigm](http://en.wikipedia.org/wiki/Multi-paradigm)*. - Scheme is one of the two major Lisp dialects used for general-purpose programming, the other one being [Common Lisp](http://en.wikipedia.org/wiki/Common_Lisp). - Scheme provides very few primitives defined in its core (known as the "RnRS standard" where "n" is an integer) as the rest is defined in extensions or libraries. - Scheme can be used for any kind of software development and can be learned in a single day thanks to its minimalist yet powerful design. - *[High order](http://en.wikipedia.org/wiki/Higher-order_programming)* programming and *[macros](http://people.csail.mit.edu/gregs/info-dylan-archive-html-2002/msg00070.html)* allow the developers using Scheme to write efficient and easily maintainable code, hence Scheme's label as the programming language of choice for many industries as well as academics. - Among programming languages, Scheme is quite unique about natively supporting [continuations](http://community.schemewiki.org/?call-with-current-continuation), a very powerful language construct using which for instance exception handling, [coroutines](http://en.wikipedia.org/wiki/Coroutine), and [weblocks](http://common-lisp.net/project/cl-weblocks/) behaviour can be implemented. Scheme is a solid way to state of the art software development. ## Literature - [Structure and Interpretation of Computer Programs](http://mitpress.mit.edu/sicp/) is a Computer Science book that uses Scheme. You find the book on its web site, and its videos on [YouTube](http://www.youtube.com/results?search_query=SICP+&search_type=&aq=f) and on a [homepage](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/). - [An Introduction to Scheme and its Implementation](http://www.federated.com/~jim/schintro-v14/schintro_toc.html) ([alternative link](ftp://ftp.cs.utexas.edu/pub/garbage/cs345/schintro-v14/schintro_toc.html)) is a practical hands-on guide to Scheme, for people new to software development, as well as for people with a background in general programming languges such as C, C++, Java, Pascal, PHP, etc. - [How to Design Programs](http://www.htdp.org/) - [The Scheme Programming Language](http://www.scheme.com/tspl3/) - The Revised5 Report on the Algorithmic Language Scheme [here](http://schemers.org/Documents/Standards/R5RS/) and more in particular [here](http://schemers.org/Documents/Standards/R5RS/HTML/). ## Web sites - [www.schemers.org](http://www.schemers.org) - [community.schemewiki.org](http://community.schemewiki.org/) - [Scheme (programming language) on Wikipedia](http://en.wikipedia.org/wiki/Scheme_\(programming_language\)) ## Forums and Chat - [comp.lang.scheme on Usenet](http://groups.google.com/group/comp.lang.scheme) - The \#gambit and \#scheme channels on [Freenode IRC](http://www.mibbit.com) ## Other resources - [The 90 minutes Scheme to C compiler](http://www.iro.umontreal.ca/~boucherd/mslug/meetings/20041020/minutes-en.html) - [The adventures of a Pythonista in Schemeland](http://www.artima.com/weblogs/index.jsp?blogger=micheles) [Category: Language](Category:%20Language.md)