Which book or tutorial has the best exercises?  Whenever I learn a language I like to do tons of exercises, and in fact I keep a list of books with great exercises.  I currently have Real World Haskell and Programming in Haskell (Hutton), but I feel the exercises in these books are lacking.  Examples of books with great exercises are ANSI Common Lisp (Graham), Developing Applications with Ocaml (O&#39;Reilly), The Algorithm Design Manual (Skiena), and and Enumerative Combinatorics by Stanley (this book is the king of all books when it comes to exercises).  They shouldn&#39;t be impossible, but at the same time exercises like &quot;what are the types of the following expressions&quot; are pretty silly.  I think a good book should be broken into chapters where it takes at least 10 to 20 times as long to complete the exercises at the end of each chapter than it did to read the chapter and understand the material in it.<br>