[Haskell-cafe] Pierce on type theory and category theory
pirelo at googlemail.com
Wed Sep 26 03:58:20 EDT 2007
Another opinion in case you need more:
TAPL is excellent for self-study. There are solutions for most
interesting exercises. And every type system presented comes with a
downloadable implementation. You can practice with it and change it.
Do not hesitate to get it. I also recommend Cardelli's papers on types
which are free to obtain.
The Basic Category Theory book is, as the title says, "basic". It is a
sort of polished study notes (and I recall Pierce saying something
along this line in the introduction). Several examples and exercises
are taken from Goldblatt's "Topoi, the Categorical Analysis of Logic",
whose first chapters are a good starting point in Category theory but
he introduces category-theoretic concepts from set-theoretic ones and
it can be hard to abstract properly from one example. Pierce's book
is well-written, introductory, there's nice stuff on cartesian closed
categories and F-algebras, and the best thing is its excellent
annotated bibliography which will help you to move on. Given its price
and size, I think its worth.
You'll need more stuff. There are books and tutorials out there.
MacLane I guess is a must, if only for breadth and precision. There's
Steve Awodey's book (Oxford University Press). I found Harold Simmon's
notes "Category Theory in four easy movements" enjoyable and readable,
especially the stuff on limits. Lawere's book mentioned by others is
also fun. Fokkinga has an excellent introduction to category theory
from a calculational standpoint, with notation and concepts used in
the Bananas paper. There is also Barr and Wells's third edition. And
of course, Mitchell's encyclopedic "Foundations for Programming
To conclude, there are loads of sources and for self study, I'd
recommend to use several books and several tutorial notes, if only to
contrast approaches, definitions, to have exercises and solutions,
etc. And there's the wikipedia as well.
More information about the Haskell-Cafe