Version française
Home     About     Download     Resources     Contact us    
Browse thread
(Mostly) Functional Design?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
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.