
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
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"
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@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe