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.
+In any case, here is
+<a name=installing></a>
+[[How to get the programming languages running on your computer|installing]].
+And 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
of programming languages. Scheme
[Scheme](http://en.wikipedia.org/wiki/Scheme_%28programming_language%29),
[Racket](http://en.wikipedia.org/wiki/Racket_%28programming_language%29), and
[Chicken](http://en.wikipedia.org/wiki/CHICKEN_%28Scheme_implementation%29).)
+ <!-- Help on Learning Scheme -->
* **Caml** is one of two major dialects of *ML*, which is another large
family of programming languages. Caml has only one active "implementation",
[ML](http://en.wikipedia.org/wiki/ML_%28programming_language%29),
[Caml](http://en.wikipedia.org/wiki/Caml), and
[OCaml](http://en.wikipedia.org/wiki/OCaml).)
+ <!-- Help on Learning OCaml -->
-* Those of you with some programming background may have encountered a third
-prominent functional programming language, **Haskell**. This is also used a
+* **Haskell** is also used a
lot in the academic contexts we'll be working through. Its surface syntax
differs from Caml, and there are various important things one can do in
each of Haskell and Caml that one can't (or can't as easily) do in the
(Wikipedia on
[Haskell](http://en.wikipedia.org/wiki/Haskell_%28programming_language%29) and
[GHC](https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler).)
+ <!-- Help on Learning Haskell -->
-<a name=installing></a>
-[[How to get the programming languages running on your computer|installing]]
## Recommended Books ##