
On Thu, Sep 27, 2012 at 10:07:53PM -0400, Lino Rosa wrote:
Hi,
I'm a Haskell newbie and I couldn't quite make sense of how currying maps to the the Hask Category. How would I map, for instance (+) to a Hask 'arrow'?
Type class polymorphism complicates matters, so for the moment let's pretend (+) works only on Int. Then (+) is an arrow from the object Int to the object (Int -> Int). (+) :: Int -> (Int -> Int) Hask is special in its ability to have *objects* which themselves represent arrows, like (Int -> Int). In category theory terms, it is "cartesian closed".
If objects are types on Hask, then would a -> a -> a be the first object on this chain?
No, the first object is just Int (or 'a') and the second is (Int -> Int).
In that case, for the first arrow, would I have as many arrows as there are possible partial applications on this type? In other words, would I have (+) 1, (+) 2, (+) 3 ... all those transitioning to the second object ( a -> a ) Or, do I have ONE arrow only, like (+) a ?
(+) 1, (+) 2, (+) 3, etc. are all different arrows. They all go from the object Int to itself. -Brent