Personal tools

Solution2.html

From HaskellWiki

Revision as of 17:49, 10 June 2013 by Prajit (Talk | contribs)

Jump to: navigation, search
parent :: Sheep -> Maybe Sheep
parent s = father s `mplus` mother s
 
grandparent :: Sheep -> Maybe Sheep
grandparent s = paternalGrandfather s `mplus` 
                paternalGrandmother s `mplus` 
                maternalGrandfather s `mplus` 
                maternalGrandmother s

This solution will not work. If the sheep has a father and only a maternal grandparent, this function will return Nothing:

grandparent :: Sheep -> Maybe Sheep
grandparent s = parent s >>= parent