Browse thread
(Mostly) Functional Design?
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2005-07-19 (09:35) |
From: | Robert Morelli <morelli@c...> |
Subject: | Re: [Caml-list] (Mostly) Functional Design? |
james woodyatt wrote: > On 18 Jul 2005, at 10:17, Doug Kirk wrote: > >> >> First, since this thread was started by somebody asking for ideas on >> learning FP, I can site a couple of printed resources that have helped >> me, but none are written using Ocaml: >> >> "Haskell School of Expression", Hudak, ISBN 0-52164-4089 >> "Algorithms: A Functional Programming Approach", Rabhi, Lapalme, ISBN >> 0-20159-6040 >> "Structure & Interpretation of Computer Programs", Sussman, Abelson, >> Sussman, ISBN 0-26269-2201 > > > I would add that a good tutorial on monads is a resource that every > functional programmer should read for comprehension. I haven't found > one that I can recommend without hesitation, but here's a candidate: > > <http://www.nomaware.com/monads/html/> You know, I once started writing an expository paper called "Monads for Mortals." My background is in mathematics and I knew what monads were in category theory more than a decade before I learned what a functional programming language was. However, my purpose was to explain monads in a way that I think is completely intuitive, simple, and sensible from an ordinary programmer's point of view. I abandoned the paper several years ago, but perhaps it's worth completing it. By the way, not only did I know about monads before FP, I'm probably one of the few people on earth who knew what what denotational semantics was before I even knew what the phrase "functional language" meant. I read an entire book on the subject about a year before I learned Haskell. Another book that might be mentioned here is Felleisen, Findler, Flatt, Krishnamurthi, How to Design Programs.