Difference between revisions of "Solution1.html"
Jump to navigation
Jump to search
m (Better organisation of content needed...) |
m (Contents transferred to single solutions page) |
||
Line 44: | Line 44: | ||
</haskell> |
</haskell> |
||
⚫ | |||
− | <!-- atravers: Have one single page of solutions, instead of a page for each solution... --> |
||
⚫ |
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