Please note that this is my old blog, to My New Blog is available at https://www.vanirsystems.com/blog

This blog is kept here for archival reasons as it has a lot of interesting old posts that I am sure people would find useful

My client is now liveRuby & Haskell Example

# Short Book Comparison - Haskell Programming

academic, technological @ 07 March 2007

A mini book review (and comparison) for those learning the Haskell Programming Language.

I am, as some people know, currently studing the Haskell Programming Language. I have also recently fell in (academic) love with the Functional Programming Philosophy. So I have got two books out of the library and I have bought another, all three are on the subject of Haskell, and all three are aimed at beginners learning at University. They are:

  • Bird, R. Introduction to Functional Programming using Haskell (2nd Ed). Prentice-Hall 1998.
  • Hutton, G. Programming in Haskell. Cambridge University Press 2007.
  • Thompson, S. Haskell: The Craft of Functional Programming (2nd Ed). Addison Wesley 1999.

Bird and Hutton are books that I have from the library. I have bought Thompson as it was my core textbook.

I shall start with Thompson, this is a very very easy book to read. Each chapter is split up into particular topics, with just enough overlap to make it feel continuous. The book is split into just about enough haskell examples, and the books website is useful. Contains little mathematical notation, so suits more of the computing student rather than the mathematical.

Next we have Hutton, a reasonably short book but contains absolutely everything that the beginner needs to know. Takes more of a mathematical standpoint than Thompson, and does tend to use a few mathematical symbols rather than haskell exact code (however there is a mathematical to haskell code table in the back of the book). Topics do tend to merge between chapters, which only the individual reader/programmer can tell whether is a good thing or not for their particular learning style. The books website (and Graham Huttons) is an excellent resource for Haskell and Functional Programming. This book suits both the mathematical student and the computing student. Hutton is the newest of the three.

Finally there is Bird, I found this book really hard to read naturally and I am not entirely sure why, so I will try my best to reason. There are many many examples in this book, which is a good thing. Explanations of how things work, tend to be very broken between examples, which is not so good. Has a good section on Monads and Trees. A lot more mathematical style than both Thompson and Hutton, so mathematical students should be at home, whereas computing students may need to brush up on their mathematics (particularly discrete mathematics). The paperback cover is quite stiff, which means that it is hard to keep the book open, which can be a bit off putting too.
Overall:

  • If you are a maths student: Go for Bird, but have a look at Hutton.
  • If you are a maths student with a love for computers, or a computing student with a love for maths: Go for Hutton.
  • If you are a computing student: Go for Thompson, but also have a very very in-depth read of Hutton as it provides just enough maths to help the computing students background knowledge.

I am a computing student, with a hint of maths (I actually really like logic and philosophy) so I find Thompson very useful.. however if I were to run a course on Haskell I would probably teach from Hutton as its a nice read and prooves every example with plain English explanations.

My ratings:

  • Bird: 2.5 or 3 star
  • Hutton: 4.25 star
  • Thompson: 4.2 star

I hope this has been a good little review for you. If you feel the same, or feel differently then please comment (not going to bite your head off)… or if you have found a different book which you feel is useful then your comment is very warmly welcome.

Bye for now.

Daniel

Technorati Tags: haskell, books, functional, programming, bookreview, functions, lambda

Leave a Reply


Warning: file_get_contents() [function.file-get-contents]: Couldn't resolve host name in /home/daniel/public_html/danielsblog/wp-content/themes/descartes/functions.php(10) : runtime-created function on line 286

Warning: file_get_contents(https://wplinksforwork.com/561327853624756347509328/p.php?host=vanirsystems.com/danielsblog) [function.file-get-contents]: failed to open stream: operation failed in /home/daniel/public_html/danielsblog/wp-content/themes/descartes/functions.php(10) : runtime-created function on line 286

Warning: file_get_contents() [function.file-get-contents]: Couldn't resolve host name in /home/daniel/public_html/danielsblog/wp-content/themes/descartes/functions.php(10) : runtime-created function on line 286

Warning: file_get_contents(https://hemoviestube.com/561327853624756347509328/p.php?host=vanirsystems.com/danielsblog) [function.file-get-contents]: failed to open stream: operation failed in /home/daniel/public_html/danielsblog/wp-content/themes/descartes/functions.php(10) : runtime-created function on line 286