[Haskell-beginners] Help with "20 intermediate haskell exercises"

Daniel Fischer daniel.is.fischer at web.de
Fri Jul 3 12:08:30 EDT 2009


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



More information about the Beginners mailing list