<pedrocorreia.net ⁄>

<Why it's so Hard for Imperative Programmers to Learn Functional Languages ⁄ >

clicks: 3680 3680 2007-02-18 2007-02-18 goto misc myNews misc  Bookmark This Bookmark This

I'm not currently using any functional languages like Haskell and Lisp, but I'm certainly comfortable with them. I'm certainly no Haskell guru, but I'm good enough to use higher-order functions, ADTs, monads, etc. While I have a good grasp of functional programming concepts now, I had to travel a long, hard road to get to this point.

Picture if you will a programmer with a C-family background discovering Haskell for the first time. He's heard some smart people talk about how cool it is, and it says right there on haskell.org that it will substantially boost your productivity, so he momentarily puts down his Java Enterprise Web Framework With a Really Long Name and starts reading a Haskell tutorial.

At first, everything goes well. He's impressed by the fact that you don't have to constantly compile code to see the effects of your program. But after using the REPL as a calculator for a few minutes, he decides to check out how you write Hello World. This is where things start going downhill.

He notices that the chapter on I/O is tucked away in the Advanced section. Curiously, he flips to it and discovers, not an explanation of console and file I/O, but a disscussion of type classes, monads, and the like. He wonders if everything will make more sense if he just visits the appropriate chapters, but no luck; Haskell looks like one big incomprehensible mess. Our imperative programmer goes back to his Java Enterprise Framework, and that is the end of that.

It's very difficult for a programmer used to imperative programming to find a good Haskell tutorial, or a good tutorial on any other functional language for that matter. It's not that they explain Haskell badly; many of them explain it rather well. It's just that they explain the wrong parts of Haskell. Procedural programmers are more often interested in how to do I/O and create GUIs rather than in how to use Parsec or write monads.

This is one of the major barriers to adoption of the more esoteric languages; lack of learning material for "normal people". To rectify this, I thought about how I would write a Haskell tutorial.

este é só um excerto do artigo, para aceder ao artigo completo, clique no link em baixo:
this is just a small excerpt from the article, to access the full article please click in the link below:


Subscribe News RSS  Subscribe News Updates by E-mail

myNews <myNews show="rand" cat="misc" ⁄>

Adobe Photoshop CS6: Improvements for Web and UI Designers new ...

Photoshop CS6 has been hailed as a huge improvement for web and UI designers. I'm going to share wit (...)

clicks: 18507 18507 2012-05-14 2012-05-14 goto url (new window) webdesign.tutsp... goto myNews misc

Camera Exposure Modes Explained new ...

If you're just getting started with photography, the letters on your camera's dial might feel like h (...)

clicks: 16064 16064 2012-05-13 2012-05-13 goto url (new window) photo.tutsplus.... goto myNews misc

45 Fresh Collection of High Quality Free PSD Files new ...

What else can be so great for a designer than finding out high quality Photoshop PSD files? This is (...)

clicks: 9806 9806 2012-05-09 2012-05-09 goto url (new window) smashingapps.co... goto myNews misc

15 Free High Quality ToolTip PSD's new ...

A tooltip or infotip can be defined as a graphical hint that is incorporated with the website design (...)

clicks: 11465 11465 2012-05-07 2012-05-07 goto url (new window) smashingapps.co... goto myNews misc

40+ Elegant Examples of River Photography

River photography is one of the beautiful type of photography, photographers take pleasure in this w (...)

clicks: 7243 7243 2012-05-04 2012-05-04 goto url (new window) smashingbuzz.co... goto myNews misc

40 Fresh And High Quality Free Icon Sets In PSD Format

Here is yet another exciting collection of high quality Free Icon PSD files for the designers that t (...)

clicks: 7714 7714 2012-02-19 2012-02-19 goto url (new window) smashingapps.co... goto myNews misc

15 jQuery Calendar Date Picker Plugins

In this collection, you will see some of the best jQuery Calendar Date Picker Plugins that will allo (...)

clicks: 7643 7643 2012-02-18 2012-02-18 goto url (new window) smashingapps.co... goto myNews misc

50 Beautiful Yet Free HTML5 And CSS3 Templates

HTML5 templates are getting very popular these days because all professional HTML5 templates are com (...)

clicks: 8221 8221 2012-02-17 2012-02-17 goto url (new window) smashingapps.co... goto myNews misc