Is Haskell Worth Learning? Is It Interesting to Study?
If you would have to learn Haskell for an actual project with a time constraint, pick something like Python or Scheme instead, where the transition is a lot less of a burden and the chances for success are higher (Assuming you are a C/C++/Java/Perl programmer). If you are doing a report about the language, then I wouldn't hesitate to say that Haskell is very interesting to study and I think you will really enjoy even just reading about it (and hopefully tinkering with it)!
Try Haskell Today, for Free!
Before saying anything about the language, I will let you go look at it. See if you can figure out what each little piece does.
-- obligatory factorial function fac n = product [1..n] -- fibonacci numbers calculated in O(n) time fib n = fibs !! n fibs = 1 : 1 : (add fibs (tail fibs)) add = zipWith (+) -- infinite factorial stream (also O(n)) nums = [1..] facs = 1 : (mul nums facs) mul = zipWith (*)
Main> map fac [0..10] [1,1,2,6,24,120,720,5040,40320,362880,3628800] Main> map fib [0..10] [1,1,2,3,5,8,13,21,34,55,89] Main> take 11 fibs [1,1,2,3,5,8,13,21,34,55,89]
Tutorials and Introductions in Order of Importance:
You can get it online and play with it or read more about it.
Haskell.org for everything Haskell related, including free, open source compilers/interpreters (there are no "better commercial-only version that I'm aware of; this is similar to the state of Python and Perl, but distinct from Lisp, Java or C/C++)
Learn You a Haskell for Great Good: Order a copy of the book or read it online for free. The gentlest introduction yet, with 57% more soothing ointment.
Real World Haskell: Awesome O'Reilly book released Fall 2008.
Yet Another Haskell Tutorial (now, the Haskell Wikibook): This tutorial seems to be structured in a way that I would gladly wish upon anyone. It also has good links to other places, installation guides, explains pitfalls carefully, but is under construction. Read this and you quickly get a feel for Haskell.
A "Gentle" Introduction to Haskell: The standard tutorial: it is more succint than YAHT but is almost somewhat terse and unforgiving, though well done and well written. I like it but consider reading YAHT first.
The Online Report is a good official reference of the language. (Or check out the defintion of Haskell 98 for printable versions — I'm crazy enough I printed and bound this thing — 277 pgs — and read it all the way through for fun, but that's just me.)
Maybe you can find this book at the library: The Haskell School of Expression. It is an introductory text but uses interesting examples from graphics to cover some advanced topics.
I remember before I spent the time to learn it or really write programs in it, I read some tutorials and was surprised at how interesting and consistent and clean and understandable it seemed. Of course this is different than actually learning to speak the language, but I definitely admired it before I got a chance to use it. ↩︎