More Interesting Language than Haskell

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)[1]!

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.

Example code

-- 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 (*)

Interactive session

Main> map fac [0..10]
Main> map fib [0..10]
Main> take 11 fibs

Tutorials and Introductions in Order of Importance:

You can get it online and play with it or read more about it.

  1. 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++)

  2. 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.

  3. Real World Haskell: Awesome O'Reilly book released Fall 2008.

  4. 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.

  5. 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.

  6. 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.)

  7. 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.

  1. 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. ↩︎