haskell - functors from partially applied function type -
there quesion in programming in haskell says: complete following declaration:
instance functor ((->) a) now functor thing has type definition of:
instance functor thing --fmap::(a -> b) -> thing -> thing b i wondering if reduction makes sense:
instance functor ((->) a) -- fmap::(a -> b) -> ((->) a) -> ((->) a) b -- therefore -- fmap::(a -> b) -> -> -> (a -> b) -- therefore -- fmap::b -> b -- update --- missed brackets, should have been
instance functor ((->) a) -- fmap::(a -> b) -> ((->) a) -> ((->) a) b -- therefore -- fmap::(a -> b) -> (a -> a) -> (a -> b) -- therefore -- should returning function of -> b
no, because a in instance declaration not same a 1 in type of fmap. need assign type variable in instance declaration avoids "capturing" a in type of fmap:
instance functor ((->) r) fmap :: (a -> b) -> (r -> a) -> (r -> b)
Comments
Post a Comment