|Haskell From The Very Beginning|
Author: John Whitington
As a functional language, Haskell takes a different approach to programming to most other languages. This book aims to teach you how it works.
The book makes no assumptions about programming knowledge, so starts off from the very basics of entering a Haskell command to carry out an arithmetic sum. The author, John Whitington has experience of teaching programming to students on the Foundations of Computer Science course at the UK University of Cambridge, and this practical background shows through in the approach he takes.
The opening chapter is followed by another scene setter on names and functions before moving onto the main subject matter of the book with chapters on writing and using Haskell scripts, and introducing pattern matching and lists.
The book continues with chapters on sorting, functions, errors, keys, the data types, trees, and real numbers. A chapter on being lazy introduces the idea of repeats, after which the author goes on to input and output, and building bigger programs, and the book ends with a chapter on the standard prelude and base.
Throughout the book, chapters end with a set of questions to ascertain whether you've understood the chapter topic, and a 'So Far' section with thumbnail descriptions on everything you ought to know by this point in the book.
This is a hard book to sum up. I often think authors spend too much time on the concepts of a programming language, and not enough time on the practicalities. In some ways this book goes too far the other way; I'd have liked more preamble in the chapters telling me the big idea. I do admit that much of my 'bits missing' feeling is probably down to the fact that as a polymorphically-statically-typed, lazy, purely functional language Haskell just does things differently. Interestingly, despite my caveats, I'm pretty sure that if I worked through all the examples, rather than just reading the book, I could come out as someone who could write Haskell programs, and that's pretty much all you can ask of a book about programming in a new language.If you're planning on learning Haskell, I'd recommend you get this book. You might want a companion volume on the big ideas behind Haskell and its design, but this book will fill you in on how to actually code Haskell.