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...

  • dremel

    They published a paper on Dremel, my favorite previously-unpublished tool from the Google toolchest. Greg Linden discusses it: "[...] it is capable…

  • google ime

    Japanophiles might be interested to learn that Google released a Japanese IME. IME is the sort of NLP problem that Google is nearly uniquely…

  • ghc llvm

    I read this thesis on an LLVM backend for GHC, primarily because I was curious to learn more about GHC internals. The thesis serves well as an…

  • 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.