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 <[email protected]> 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" <[email protected]> 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 > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
