Mailing List Archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tlug] Resources for learning Haskell



On 2013-03-29 18:05 +0100 (Fri), Josh Glover wrote:

> ...Scheme, Clojure, and Scala (which, as Curt noted, has many things
> stolen from^W^W in common with Haskell)...

Actually, a lot of that stuff in turn comes from Miranda[1], to
which Haskell owes a huge debt (Miranda might even be thought of as
"pre-Haskell"), and that in turn takes a fair number of ideas (most
noteably, perhaps, the Hindley-Milner typing system) from ML[2], which
in turn owes quite a lot to ISWIM.

> ...a copy of "Real World Haskell"...

I don't recommend that as a first, book, actually. It's not terribly
well written, and has a lot of bugs. However, it's probably useful as a
second or third book once you've got the hang of the language itself and
you're trying to work on real-world projects.

> 1. Other than the reading materials noted above, what is the bible on
> the Haskell programming language?

There's no particular bible for Haskell, though there are a lot of good
books out there. As a first book, I highly recommend Graham Hutton's
_Programming in Haskell_[1]; it's fairly concise and covers both the
language and the nature of how one programs in it. In particular, I
recommend you thoroughly master chapter 8, "Functional Parsers", though
I won't tell you why here so as not to spoil the surprise you'll get at
some point after doing so.

After that you can go pretty much where you please. Paul Hudak's book
_The Haskell School of Expression_[2] is a good way to learn to do
some serious coding for graphics and animation, and teaches you about
functional reactive programming as a bonus.

And, of course, you'll probably want to read one or more monad tutorials
before you (inevtably) write your own. (Really. Everybody does.) My
favourite is "All About Monads"[3] which not only helps you understand
them, but focuses heavily on the construction and use of many of the
standard moands, which I found really helped build my intuition for
them.

Oh, one more thing: Haskell, at least the way I use it, tends to very
heavy use of recursion over lists, very much like Lisp or Scheme. If
you're not particularly comfortable with this style of programming, you
may find it useful first to work through _The Little Schemer_[4] by
Daniel Friedman.

[1]: https://www.cs.nott.ac.uk/~gmh/book.html
[2]: http://www.cs.yale.edu/homes/hudak/SOE/
[3]: http://www.haskell.org/haskellwiki/All_about_monads
[4]: http://www.ccs.neu.edu/home/matthias/BTLS/

> 2. Any suggestions for some programming problems I can tackle to get
> my head into Haskell?

Project Euler (projecteuler.net) offers a large set of interesting
problems with a very mathematical bent.

If you're looking to something more in the line of "doing stuff,"
you could try to start writing in Haskell the day to day text
processing things you might otherwise do in Bourne shell or Ruby or
similar languages. (You can do the usual hashbang of the interpreter,
"#!/usr/bin/runhaskell", at the top of a file to make it a "Haskell
script.") This can sometimes be a bit tough at first, but there are a
surprising number of cases where doing some text processing in Haskell
is actually easier than doing it in Ruby.

cjs
-- 
Curt Sampson         <cjs@example.com>         +81 90 7737 2974

To iterate is human, to recurse divine.
    - L Peter Deutsch


Home | Main Index | Thread Index

Home Page Mailing List Linux and Japan TLUG Members Links