* Here are lecture notes for week 1: [[order|topics/week1 order]];
[[the introduction to functional programming|topics/week1]], along
* Here are lecture notes for week 1: [[order|topics/week1 order]];
[[the introduction to functional programming|topics/week1]], along
understanding of them to recognize them in use, use them yourself at least
in simple ways, and to be able to read more about them when appropriate.
understanding of them to recognize them in use, use them yourself at least
in simple ways, and to be able to read more about them when appropriate.
of the extent to which they emphasize, and are designed around those idioms. Languages like Python and JavaScript are sometimes themselves
described as "more functional" than other languages, like C.
of the extent to which they emphasize, and are designed around those idioms. Languages like Python and JavaScript are sometimes themselves
described as "more functional" than other languages, like C.
In any case, here is some more context for the three languages we will be focusing on.
* **Scheme** is one of two or three major dialects of *Lisp*, which is a large family
In any case, here is some more context for the three languages we will be focusing on.
* **Scheme** is one of two or three major dialects of *Lisp*, which is a large family
and that is what we recommend you use. If you're already using or comfortable with
another Scheme implementation, though, there's no compelling reason to switch.
and that is what we recommend you use. If you're already using or comfortable with
another Scheme implementation, though, there's no compelling reason to switch.
Racket stands to Scheme in something like the relation Firefox stands to HTML.
(Wikipedia on [Lisp](http://en.wikipedia.org/wiki/Lisp_%28programming_language%29),
Racket stands to Scheme in something like the relation Firefox stands to HTML.
(Wikipedia on [Lisp](http://en.wikipedia.org/wiki/Lisp_%28programming_language%29),