[Haskell-cafe] Category theory as a design tool

Alexander Solla alex.solla at gmail.com
Thu Jun 23 21:05:58 CEST 2011

On Wed, Jun 22, 2011 at 5:03 PM, Gregg Reynolds <dev at mobileink.com> wrote:

Well, you're way ahead of me.  I don't even "get" adjunctions, to tell you
> the truth.  By which I mean that I have no intuition about them; it's not so
> hard to understand the formal definition, but it's another thing altogether
> to grasp the deep significance.

In short, an adjunction is the relationship that for every "limit" of type
A, there is a corresponding limit of type "B", and vice-versa, realized by a
functor F that maps A to B and a functor F* that maps B to A.

Since F and F* map limits to limits, they preserve more algebraic structure
than just any old functors F :: A -> B and G :: B -> A.  In particular,
adjoint functors are "continuous".  (There are very strong parallels with
topology, owing to Category theory's history as a language for describing
topological constructs without reference to point sets.)

Every adjunction gives rise to a monad -- a generalized closure operator
(topology and lattice theory are very intimately related).  In particular,
if a category is complete (contains all its limits), then it will have the
same structure as the monad generated by an adjunction.

There are some good videos on youtube for gaining intuition about some of
these issues:
is a good place to start the series.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20110623/fed3d9ba/attachment.htm>

More information about the Haskell-Cafe mailing list