[Haskell] Re: Teach theory then Haskell as example

Dave Bayer bayer at cpw.math.columbia.edu
Fri Jan 16 10:46:45 EST 2009


On Jan 16, 2009, at 2:00 AM, Apfelmus, Heinrich wrote:

> Rodney Price wrote:
>> So where do I as a practicing programmer and researcher go to learn  
>> all
>> this stuff?

...

> In the long term, the aim of the Haskell Wikibook is to become a  
> gentle
> introduction to "this stuff. It's nowhere near finished yet, but  
> there's
> already some preliminary material
>
>  http://en.wikibooks.org/wiki/Haskell/Category_theory

As a mathematician, Haskell has renewed my interest in category  
theory. I had thought one learns category theory most easily at age  
20, because it paints such an eviscerated view of flesh-and-blood  
subjects like geometry, but at age 20 one doesn't care. Now, it is  
clear to me that functional programming is THE application of category  
theory. They're both about combining functions. If one wants to become  
fluent at combining functions, one needs an operational understanding  
of category theory, whether or not one likes the formal language.

I'm struck, reading various papers that translate functional  
programming constructs back to category theory, how messy something  
simple in Haskell has to look in classical category theory, because  
Haskell is "higher order" and classical category theory is not.

What some people might like is a no-holds-barred intro to category  
theory that updates it to fit Haskell, with a higher order  
presentation reworking the theory to match current functional  
programming practice. I'm the wrong person to try to write this, but I  
may, to teach myself.

Among the intro texts out there,

\bib{MR1120026}{book}{
    author={Pierce, Benjamin C.},
    title={Basic category theory for computer scientists},
    series={Foundations of Computing Series},
    publisher={MIT Press},
    place={Cambridge, MA},
    date={1991},
    pages={xiv+100},
    isbn={0-262-66071-7},
    review={\MR{1120026 (93c:18002)}},
}

is excellent, with a functional programming focus.


More information about the Haskell mailing list