Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
applicative [2014/08/24 17:44] nikolaj |
applicative [2014/08/25 00:06] nikolaj |
||
---|---|---|---|
Line 3: | Line 3: | ||
=== Definition === | === Definition === | ||
<code/Haskell> | <code/Haskell> | ||
+ | -- definition | ||
class Functor f => Applicative f where | class Functor f => Applicative f where | ||
pure :: a -> f a | pure :: a -> f a | ||
Line 8: | Line 9: | ||
</code> | </code> | ||
- | === Laws === | + | | pure id <*> v $\ \leftrightsquigarrow\ $ v | |
- | pure id <*> v $\ \leftrightsquigarrow\ $ v | + | | pure f <*> pure x $\ \leftrightsquigarrow\ $ pure (f x) | |
- | + | | u <*> pure y $\ \leftrightsquigarrow\ $ pure ($ y) <*> u | | |
- | pure f <*> pure x $\ \leftrightsquigarrow\ $ pure (f x) | + | | u <*> (v <*> w) $\ \leftrightsquigarrow\ $ pure (.) <*> u <*> v <*> w | |
- | + | ||
- | u <*> pure y $\ \leftrightsquigarrow\ $ pure ($ y) <*> u | + | |
- | + | ||
- | u <*> (v <*> w) $\ \leftrightsquigarrow\ $ pure (.) <*> u <*> v <*> w | + | |
==== Discussion ==== | ==== Discussion ==== |