Teach Yourself Racket

Prabhakar Ragde <plragde at uwaterloo dot ca>

Racket is a modern functional programming language, a dialect of Lisp and Scheme, good for exploration of ideas and rapid prototyping. This document offers a quick, shallow, and incomplete introduction to the language for mature programmers with experience in an imperative language (C, C++, Java, Python, etc.). High school and undergraduate students, as well as those with no prior experience with computation, will be better off with a more careful introduction to Racket such as that afforded by How To Design Programs (second edition), which takes advantage of a series of teaching languages implementing small subsets of Racket. Even experienced programmers could benefit from the HtDP "programming by design" approach. But patience is sometimes a luxury we cannot afford and sometimes a virtue we choose to forego.

In addition to HtDP, I have been inspired by The Racket Guide, Teach Yourself Scheme in Fixnum Days, The Little Schemer, The Scheme Programming Language, and many blog posts and mailing list contributions. My thanks to the dynamic and friendly Racket community.

This is version 0.1 (2012-08-31). Future improvements include more examples, proper section links, and a selection of exercises, in addition to the completion of Section 4.