Logo




Subscribe:
RSS 2.0 | Atom 1.0
Categories:

Sign In


[Giagnocavo]Michael::Write()

 Tuesday, September 02, 2008
Become a better F# programmer via Real World Haskell

There are other great books out there such as Expert F#. The F# Dev center has links to many other "learn F#" articles. All of these are great.

But, something I found helpful is going "purely functional", and Haskell is the perfect vehicle. When you're forced to think only functional, and don't have the other "escapes" F# has, you bend your mind into understanding how you can accomplish things without using mutation or object-orientation.

The downside of Haskell is that many resources seem to be very challenging to get into. There's no doubt that the learning curve for Haskell can be tough. On top of that, many materials tend to dive right into monads and it tends to end up too scary. I've even bought several other good books on functional programming, but none of them were easily approachable. (They have good content, but you can't start from zero by using them.)

Enter Real World Haskell. This is a *very* easy to follow book and really drives functional programming home. It doesn’t assume you know anything about functional programming at all, so the learning curve is a gentle slope.

Even better? It's completely available online, so you can start reading it right now! Plus, it has reader-submitted comments which are of tremendous use, as they ask and answer many common questions that might arise as you read along, without interfering with the flow. You can read the entire book here: http://book.realworldhaskell.org/read/ [But buy it to support the excellent work the authors have done!]

I've found that my F# skills have gone up tremendously by reading Real World Haskell. For instance, I "sorta" understood F#'s computation expressions and builder. Say, enough to use them -- that's easy, like most things in F#), but understanding the concepts behind them? Starting to learn Haskell really brings the understanding around. This isn't to say that you'll eschew mutation and OO in F# -- such concepts can be very useful (and increase performance on the CLR). But at least you'll know when a more elegant solution is available.

(Plus, it's fun! As someone in #haskell on freenode put it to me: "Learning Haskell will f*ck with your brain, and you'll like it.")

Code | F#
Tuesday, September 02, 2008 4:00:06 AM UTC  #    Comments [4]  |  Trackback

Tuesday, September 02, 2008 9:07:16 PM UTC
Hi, sorry for a small advedt, but it seems reasonable to mention it :-).
I just announced a book that should fill exactly this "hole" in the F# information space - It should explain all the functional concepts in a way that would be easy to follow for anyone who knows something about C# (because lot of things can be demonstrated in both F# and C#). More information can be found here: http://tomasp.net/functional-book

Thanks!
Tomas
Wednesday, September 03, 2008 12:47:44 AM UTC
Awesome! Too bad it isn't completely available online ;). I'm interested in the early access, but do you know if the PDFs use DRM?

Thanks!
Thursday, September 04, 2008 12:56:48 AM UTC
Hi Mchael,
as far as I know, the PDFs are free of any DRM. I'm looking forward to your comments :-).

T.
Thursday, September 04, 2008 12:57:47 AM UTC
Oh, sorry for the typo (missing "i") in your name!
Name
E-mail
Home page

Comment (HTML not allowed)  

Enter the code shown (prevents robots):

Live Comment Preview