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
another Scheme implementation, though, there's no compelling reason to switch.
Another good Scheme implementation is Chicken. For our purposes, this is in some
-respects superior to Racket, and in other respects inferior.
-<!--
+respects superior to Racket, and in other respects inferior. <!--
Racket doesn't have R7RS-small, and won't anytime soon. :-(
Also Chicken's library collection seems stronger, or at least better organized and maintained.
Other R7RS-friendly: [Gauche](http://practical-scheme.net/gauche), [Chibi](https://code.google.com/p/chibi-scheme).
[Lisp](http://en.wikipedia.org/wiki/Lisp_%28programming_language%29),
[Scheme](http://en.wikipedia.org/wiki/Scheme_%28programming_language%29),
[Racket](http://en.wikipedia.org/wiki/Racket_%28programming_language%29), and
-and [Chicken](http://en.wikipedia.org/wiki/CHICKEN_%28Scheme_implementation%29).)
+[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",
(Wikipedia on
[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).)
+[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 ##