This companion volume to The Haskell Road to Logic, Math and Programming will enable you to check your solutions to the exercises. It should be used wisely. You should only turn to the solution of an exercise after you have tried to solve the exercise on your own. What the following pages do not provide is a shortcut to understanding.
You don’t expect to improve your swimming or iceskating skills by watching swimming or iceskating contests on TV. If you want to learn how to swim you must be willing to get wet. If you want to learn how to skate, you must venture on the ice skating ring and take the risk of falling. Likewise, you can’t expect to improve your skills in reasoning or programming by watching others reason or program. Just reading through the following pages, to watch how the authors reason and program, is next to useless. You have to tackle the problems yourself, at the risk of making mistakes, only using the solutions as checks on your understanding.
We can make this advice still more specific. When learning skills in formal reasoning it is easy to deceive yourself into thinking you have thought hard enough. Therefore, a honest attempt to solve a problem should always include a written account of how far you got. Thus, if you find you cannot solve a problem, you should have an attempted solution on paper. Your account should always end with “I can get this far, but then I am stuck because . . . ” or “I follow the rules like on page . . . of the book, but then I get the wrong answer because . . . ”. Proceeding like this, you will make very rapid progress. On the other hand, if you think you can disregard this advice you might as well not bother with the book at all, for skills in formal reasoning and computation can only be acquired by training, and without proper exercise you will never be any good at it.
You are completely free to do as you please, of course. Only don’t tell anyone you haven’t been warned.