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

Patrick LeBoutillier patrick.leboutillier at gmail.com
Sun Jul 5 15:05:20 EDT 2009


Hi,

Thanks for the help. I figured it out after that. I'm having a hard
time with the other exercises though, I'm currently stuck at 14:


class Misty m where
  banana :: (a -> m b) -> m a -> m b
  unicorn :: a -> m a

-- Exercise 14
-- Relative Difficulty: 6
moppy :: (Misty m) => [a] -> (a -> m b) -> m [b]
moppy = error "todo"


Does anyone know if the solutions are posted anywhere?


Patrick



On Fri, Jul 3, 2009 at 12:08 PM, Daniel Fischer<daniel.is.fischer at web.de> wrote:
> 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
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://www.haskell.org/mailman/listinfo/beginners
>



-- 
=====================
Patrick LeBoutillier
Rosemère, Québec, Canada


More information about the Beginners mailing list