less than serious - PreludeExts
Iavor S. Diatchki
diatchki at cse.ogi.edu
Fri Jan 16 10:00:44 EST 2004
just out of curiosity, have you found any uses for the adjunction class?
i spent quite a bit of time playing with adjunctions and they are very
but i haven't been able to find particulalry appealing programming examples.
this is how i formulated them in haskell:
class Functor u => Adjunction f u | f -> u, u -> f where
ret :: a -> u (f a)
bind :: f a -> (a -> u b) -> b
run :: Adjunction f u => f (u a) -> a
run m = m `bind` id
liftF :: Adjunction f u => (a -> b) -> f a -> f b
liftF f m = m `bind` \a -> ret (f a)
cobind :: Adjunction f u => a -> (f a -> b) -> u b
a `cobind` f = fmap f (ret a)
Shae Matijs Erisson wrote:
>In the true spirit of wikiwiki comes PreludeExts, all the tiny useful bits of
>code you think should be in the Prelude, but aren't.
>Anyway, this started when someone on #haskell wanted a permutations function
>for the Nth time. I read Koen's "this should be in the Prelude" comment for the
>Nth time, and PreludeExts was born.
>If you have small (or not so small) generally useful bits of code, you are
>invited to put them onto the PreludeExts page.
| Iavor S. Diatchki, Ph.D. student |
| Department of Computer Science and Engineering |
| School of OGI at OHSU |
| http://www.cse.ogi.edu/~diatchki |
More information about the Libraries