
I couldn't get close on my own. From: https://github.com/pankajgodbole/hutton/blob/master/exercises.hs {- 7. Complete the following instance declarations: instance Eq a => Eq (Maybe a) where ... instance Eq a => Eq [a] where ... -} -- suggested answer instance Eq a => Eq (Maybe a) where -- Defines the (==) operation. Nothing == Nothing = True Just == Just = True -- why isn't this Just a == Just a ? -- My guess is that a and Just a are different types and can't be == in Haskell _ == _ = False instance Eq a => Eq [a] where -- Defines the (==) operation. [] == [] = True [x] == [y] = x == y (x:xs) == (y:ys) = x==y && xs==ys -- I assume this is implicitly recursive. _ == _ = False

Hey,
a few notes:
1. The (==) function in the second equation of the Maybe instance of
(==) is not complete yet, since you need to match on instances of the
Maybe type and "Just :: a -> Maybe a". Your idea "Just a == Just a"
goes in the right direction, but please note that you can't bind two
variable names ("a") in the same equation. You need to give each
"boxed value" a different name. I'm sure you can work it out from there.
2. The right hand side of "(x:xs) == (y:ys)" is not implicitly
recursive, but rather explicitly! Since we apply the function (==) to
the smaller lists "xs" and "ys" until we arrive at a base case.
Greetings,
Tobias
----- Nachricht von trent shipley
I couldn't get close on my own. From: https://github.com/pankajgodbole/hutton/blob/master/exercises.hs {- 7. Complete the following instance declarations: instance Eq a => Eq (Maybe a) where ... instance Eq a => Eq [a] where ... -} -- suggested answer instance Eq a => Eq (Maybe a) where -- Defines the (==) operation. Nothing == Nothing = True Just == Just = True -- why isn't this Just a == Just a ? -- My guess is that a and Just a are different types and can't be == in Haskell _ == _ = False instance Eq a => Eq [a] where -- Defines the (==) operation. [] == [] = True [x] == [y] = x == y (x:xs) == (y:ys) = x==y && xs==ys -- I assume this is implicitly recursive. _ == _ = False
----- Ende der Nachricht von trent shipley
participants (2)
-
Tobias Brandt
-
trent shipley