
Am Freitag 03 Juli 2009 17:58:22 schrieb Patrick LeBoutillier:
Hi,
I'm running through these Haskell exercises:
http://dibblego.wordpress.com/2008/09/18/20-intermediate-haskell-exercises/
and I'm stuck at number 9:
class Misty m where banana :: (a -> m b) -> m a -> m b unicorn :: a -> m a
-- Exercise 9 -- Relative Difficulty: 6 instance Misty ((->) t) where banana = ??? unicorn x = (\t -> x)
I can picture it when m is "[]" or "Maybe", but I can't wrap my head around the banane implementation for "((->) t)". I can see that this somewhat looks like a Monad, with unicorn = return and banana = (flip >>=) or something. Perhaps some kind of reader Monad?
Exactly. You want banana :: (a -> (t -> b)) -> (t -> a) -> (t -> b) banana fun af = \tval -> ??? There's not much choice what you can do with those types and data.
Can anyone offer any insight?
Patrick