[Haskell-cafe] Re: First steps in Haskell
p.f.moore at gmail.com
Mon Dec 19 18:40:41 EST 2005
OOn Mon, 19 Dec 2005 10:50:00 +0100, Wolfgang Jeltsch
<wolfgang at jeltsch.net> wrote:
>Am Sonntag, 18. Dezember 2005 17:25 schrieb Daniel Carrera:
>> This is a real problem for Haskell. I expect that a lot of people try
>> Haskell and give up because they can't even write the simplest function.
>honestly, I have to say that during my years with Haskell, this seems to be
>the first time that I see somebody trying to enter a Haskell program via the
>command line of an interactive environment. So I suppose that it's not "a
>lot of people" who experience the problems you do.
I sympathise with Daniel's problems. I have hit many of them, as well.
As Daniel said, they are not complete road blocks, merely "bumps" in
the learning curve.
Part of the problem may be that much of Haskell's tutorial material is
focused on introducing functional programming (which is a new concept
to the target audience), coupled with the fact that IO and imperative
programming is a relatively "advanced" concept. That means that
writing standalone programs (as well as being somewhat
compiler-dependent in its details) takes a while to be discussed.
Example: main is first mentioned in "A Gentle Introduction to Haskell"
in chapter 7.1. That's a *lot* of reading before you get to write
>I suppose that neither the compilers and interpreters nor the documentation
>need(s) fixing, although I might be wrong with the documentation.
I suspect that the reference documentation is fine, and the tutorials
are great, given what they are trying to do. But there is scope for a
very prominent "Getting going" document. Daniel's "40-second intro to
Haskell" looks good. Expand it a little with a few lines showing tow
to build and compile a "Hello, world" program in GHC and Hugs (with a
disclaimer that the code itself is magic for now, you'll understand
when you read about monads and the IO monad) to help people who need
to get over the "but how do I write a *program*" hump, and you're
pretty much there.
More information about the Haskell-Cafe