Difference between revisions of "Solution1.html"
Jump to navigation
Jump to search
(New page: <haskell> maternalGrandfather :: Sheep -> Maybe Sheep maternalGrandfather s = return s >>= \ms -> mother ms >>= \m -> father m fathersMaternalGrandmother :: Sheep -> Mayb...) |
m (Contents transferred to single solutions page) |
||
(One intermediate revision by the same user not shown) | |||
Line 43: | Line 43: | ||
father gf |
father gf |
||
</haskell> |
</haskell> |
||
+ | |||
+ | [[Category:Pages to be removed]] |
Latest revision as of 08:41, 9 April 2021
maternalGrandfather :: Sheep -> Maybe Sheep
maternalGrandfather s =
return s >>= \ms ->
mother ms >>= \m ->
father m
fathersMaternalGrandmother :: Sheep -> Maybe Sheep
fathersMaternalGrandMother s =
return s >>= \ms ->
father ms >>= \f ->
mother s >>= \gm ->
mother gm
mothersPaternalGrandfather :: Sheep -> Maybe Sheep
mothersPaternalGrandfather s =
return s >>= \ms ->
mother ms >>= \m ->
father m >>= \gf ->
father gf
Note: the return
s are not not necessary; they are only used for the sake of the exercise.
An alternative solution without use of return
:
maternalGrandfather :: Sheep -> Maybe Sheep
maternalGrandfather s =
mother s >>= \m ->
father m
fathersMaternalGrandmother :: Sheep -> Maybe Sheep
fathersMaternalGrandMother s =
father s >>= \f ->
mother s >>= \gm ->
mother gm
mothersPaternalGrandfather :: Sheep -> Maybe Sheep
mothersPaternalGrandfather s =
mother s >>= \m ->
father m >>= \gf ->
father gf