[Haskell-cafe] On the verge of ... giving up! [OT]

jerzy.karczmarczuk at info.unicaen.fr jerzy.karczmarczuk at info.unicaen.fr
Mon Oct 15 05:45:34 EDT 2007

Richard A. O'Keefe writes: 

> (2) The mathematical background of Haskell is extremely important
>     for implementations.  Some important data structures and
>     techniques are practical in large part because of the kinds of
>     optimisations that are only straightforward in a language that
>     has such foundations. 
> (3) Beginners do not need to understand all the mathematics behind
>     Haskell to use it.

> (5) Precisely because it seeks generality, category theory seems
>     difficult to "concrete thinkers".  And books on category theory
>     tend to be extremely fast-paced, so ideas which are not in  themselves
>     particularly esoteric (which may in fact be eminently practical)
>     tend to be presented in a way which people trying to study by
>     themselves have trouble with.  So people can be scared off by
>     what _ought_ to be a big help to them.

And when *additionally* people whose experience/competence is rather weak,
spread the fear, hatred and carelessness, I have the impression that this
is something similar to a guy in primary school (and this list *is* a kind
of school) who bothers the pupils with such discoveries as "the differential
calculus is a swearword, just to annoy you, you will =never= need that, I
live happily without". 

There IS a problem. The fast pace of Category theory is a bit incomplete
diagnosis. For me, what was most annoying was an awful trap. Everything
began slowly, and nicely. And authors are kind, helpful, and understanding.
And they promise that it is *for me*. Or for Brandon S. Allbery KF8NH... 

(BTW, Why Andrew Bromage says that the book of Lawvere is pricey? Cambridge
Univ. Press sells the "Conceptual Mathematics" for 33 pounds. This is not
so much...) 

Check some other titles, *free*, please: 

*Categories for =working comp. sci'ists=, Asperti&Lungo.
*Categorical Primer by Chris Hillman (he - apparently - still revises the
  next version...)
*Gentle introduction to Cat. Th., a calculational approach by Fokkinga.
*Basic Cat., by Jaap Van Osten, a course for undergraduates, which begins
  by saying that for the Author the basic experience counts more than

(And, of course, Barr and Wells...) 

Now, you start reading, it goes smoothly, you understand functors, natural
transformations, retracts, initial objects, etc. And then the slope
begins to increase exponentially, you hit a wall...
It seems that people who finally decided to write books, tutorials, etc.
are so conditioned, that they cannot put themselves into a skin of a true
profan, even people so perfect, so didactically skilled as Barr and Wells. 

But as says the quotation from a science-fiction story /Born among the
dead/: "you must elevate yourself to their level, since you cannot force
them to descend to yours..." 

Still, monads, Kleisli triples, etc. belong to the *EASY* part!!
So, if some people really *want* to learn something, some time devote they
shall. But, there are some shortcuts as well, although nothing complete. 

  is a nice introduction! 

The paper on "Bananas, lenses and barbed wire" (Meijer, Fokkinga, Paterson)
is almost a compulsory reference. 

The craziness of generalization/universality is very well exposed in the
compilation of Fritz Ruehr, which can be read by *ANYBODY*. There is no
"hard science" inside, just examples!

Once upon a time, Eric Meijer and Luc Duponcheel wrote a paper entitled
"On the expressive power of constructor classes", where they proposed
a new "categorical prelude" for Gofer. It is an extremely inspiring paper!
(Citeseer shall have it.) 

Some of ideas therein, in a different setting, can be easily read in the
Varmo Vene thesis on coinduction, and other "horrible stuff". 

And, of course, there is a paper by Conor McBride and Ross Paterson on
applicative programming with effects, with an interesting discussion
*around* monads. 


Ugh. I am afraid I began an infinite, corecursive strem. Perhaps it is
time to break it. 

Jerzy Karczmarczuk 

More information about the Haskell-Cafe mailing list