Personal tools

User:Michiexile/MATH198/Lecture 7

From HaskellWiki

Jump to: navigation, search

IMPORTANT NOTE: THESE NOTES ARE STILL UNDER DEVELOPMENT. PLEASE WAIT UNTIL AFTER THE LECTURE WITH HANDING ANYTHING IN, OR TREATING THE NOTES AS READY TO READ.

Last week we saw what an adjunction was. Here's one thing we can do with adjunctions.

Now, let U be a left adjoint to F. We set T = UF. Then we have natural transformations

μ:UFUF − > UF μX = UεFX

ι:1 − > UF ιX = ηX

such that μ is associative and ι is the unit of μ.

These requirements remind us of the definition of a monoid - and this is not that much of a surprise. To see the exact connection, and to garner a wider spread of definitions.

Contents

1 Algebraic objects in categories

$THEORY objects in Categories.

Now, we call something a monad in a category if it is a monoid object in the category of endofunctors of that category.


We thus define a monad in a category C to be a monoid in that category.

Thus: a monad with this definition in Haskell is:

  • a type of kind
    m :: * -> *
    .
  • equipped with functions
    • return :: a -> m a
    • join :: m m a -> m a
  • examples:
List: 
return x = [x]
join (l:lsts) = l ++ join lsts
 
Maybe: 
return x = Just x
join (Just (Just x)) = Just x           
join _ = Nothing

Note: not quite what Haskell claims a monad to be. Other related concepts:

  • Kleisli category & factorization of monads: if we start with T a

monad, then can we find an adjunction U -| F to _somewhere_ such that T = UF? And the monoidal structure is given by U e_FX and eta_X?

  • From the Kleisli Category to monadic bind.
  • Monads and sequencing.












2 Some adjunctions we already know

  • initial/terminal are adjunctions.
  • (co)-products are adjunctions.
  • Actually, all (co)limits are adjunctions.


3 Some adjunctions we don't know yet

  • Existential and universal qualifiers as adjunctions.
  • Powersets and im(f) -| f^\inv

4 Properties of adjoints

4.1 RAPL: Right Adjoints Preserve Limits

4.2 Recognizing adjoints

Theorem (Freyd: The Adjoint Functor Theorem)


5 Why should we care in CS?

5.1 Monads