Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
A Brutal Introduction to (Haskell) Arrows (downstairspeople.org)
24 points by mahipal on June 16, 2010 | hide | past | favorite | 4 comments


I have heard some very smart developers admit that it took them years to wrap their brains around monads, and I suppose arrows are even more abstract ... I wonder how many people on earth honestly get this stuff well enough to use it day to day.


Well enough to use it - many. Monads are not hard to use - take the Maybe for example - it just stops doing the operations if one of them results in Nothing. That's pretty much it - now you can use it.

Designing one and implementing for your own purposes - now that's a bit more tricky. But then, we're often consumers much more than producers. Even when programming you're a consumer as far as screen, cpu, memory, compiler, etc. etc. production is concerned. You know this stuff well enough to use it day to day, but if someone told you to explain the cpu in depth, most likely you'd have problems with it.

If you do Haskell all the time, it's not that hard actually. But then again - not many people write serious Haskell stuff as their day job.


I recently decided to do a side project in Haskell. I had never used it before, and new nothing about monads. By the end of the project, I was comfortable using monads, although I still haven't had to come up with my own. So my suggestion is to just pick a reasonably sized project and implement it in Haskell. The best way to learn is by doing.


I don't think Monads are all that complicated. It's just that people think of incredibly clever ways to use them.

I think an article along the lines of, "100 incredibly boring Monads and 5 clever ones", could really help with understanding.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: