[Haskell-cafe] Re: Learning Haskell

jean-christophe mincke jeanchristophe.mincke at gmail.com
Wed Mar 25 13:15:15 EDT 2009


I discovered Haskell about a year and half ago, along with F#.

Beginning with both languages was relatively easy but I already had
experience of FP in lisp and scheme.
And some years ago I took a course in FP (learning CAML which F# is closely
based on).

My study of haskell went smooth up to the point I came across monads (that
is, the honey moon did not last very long).

I must admit that it took me about 3 months of (intermittent) work to first
understand monads and then to be able to use them correctly.

What also helped me a lot was the parallel study of both F# and Haskell.
Indeed, I often tried to understand how some constructs in Haskell could or
could not be implemented in F# (i.e type classes).
I.e. that really helped me understand the higher order types in Haskell.

After the monad episode, I found myself quite interested in FRP and all its
lot of new concepts (applicative functors, arrows, ...).
I tried to read as much as I could on the subject and finally decided that
if I wanted to really understand all this, one of the best solution was
trying to implement a small FRP myself. That's what I did in F#.
After a few weeks, I think I now understand arrows, application functors and
other curiosities.

I think that working on more or less real problems (or on real applications)
is definitively the best way to learn such languages. It is not a matter of
writing thousands of lines of code but rather to pick up a specific
aspect/feature of a language and  to apply it to a concrete example, just to
understand what problem it is supposed to solve and how well it solves it.

Although I am not making a living on Haskell/F# (specially in my country),
it gave me quite a lot of good idea in my day to day work both in terms of
development techniques and in terms of analysis/specifications.

So learning Haskell was not the easiest thing I did in my life but so far,
it does pay off.

J-C



On Wed, Mar 25, 2009 at 5:28 PM, Lanny Ripple <lanny at cisco.com> wrote:

> Learning the syntax, a day or two.
> Learning major idioms (many of which are encapsulated in modules),
> ongoing (it's been about two years of off and on).
>
> Sadly I can't use it for my $work language.  If I could then the
> time available for learning haskell and paying the mortgage would
> not be disjoint.  On the other hand I'm using what I'm learning at
> work and it's making for better code.  (And scaring some of my
> coworkers doing my code-reviews. :)
>
>  -ljr
>
> Jon Fairbairn wrote:
> > "Tom.Amundsen" <tomamundsen at gmail.com> writes:
> >
> >> How long did it take you to become proficient in Haskell?
> >
> > Something more than twenty years.
> >
> >> By that, I mean - how long until you were just as
> >> comfortable with Haskell as you were with your strongest
> >> language at that time?
> >
> > Oh, Haskell was my strongest language during all that time! ;-)
> >
> > If I have a serious point, it's that going from writing
> > imperative programmes to writing properly functional ones
> > takes a lot longer than it takes to learn every facet of the
> > language.
> >
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090325/4e0d0378/attachment.htm


More information about the Haskell-Cafe mailing list