Evan Martin (evan) wrote in evan_tech,
Evan Martin

monads for functional programming

I'm glad I've spent so much time with the Haskell manuals because so many papers are written using Haskell.
In the Haskell tutorial's monads section they mention a paper by Wadler called "Monads for functional programming", and I finally looked it up the other day.
This paper uses some simple examples as motivation and builds in a straightforward way. I can see why they recommend it.

I understand the idea and goals of monads, but not the deep understanding I would need to explain the idea to someone unfamiliar with it. It requires more thought.

Writing that made me also want to look up effects systems: they've come up a few times in class and I understand why Cyclone uses one for modelling memory accesses, but I can't quite explain it. (The Cyclone stuff is black magic, though: they're not really mentioned in the manual because they've manage to make the compiler infer most of the effects of functions; so when you're reading about the language you don't even think about it. They go into it here.)

PS. There's a bit where their CVS bit their TeX: they wanted to talk about a type called "Id", so for TeX-speak they wrapped it like $Id$, and then CVS happily expanded that to include the filename and revision time. Nobody appears to have noticed, because it's in the postscript file I've been reading...

  • memcache job offers

    I get occasional recruiter spam that specifically calls out "my work on memcached". This is pretty funny because all I did was make some trivial…

  • application stack

    "Put yourself in 1995. I'm going to tell the you of 1995 that in 2010, there will be a software platform with the following properties:" Luis Villa…

  • socks5 proxying flash via ssh

    Suppose you're in Germany and want to watch some Flash-based videos that are IP-limited to the US for whatever reason. At first you'd think you could…

  • Post a new comment


    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.