cal :: [(Int, Int)] cal = dai ++ sho ++ feb where dai = [(m, d) | m <- [1, 3, 5, 7, 8, 10, 12], d <- [1 .. 31]] sho = [(m, d) | m <- [4, 6, 9, 11], d <- [1 .. 30]] feb = [(2, d) | d <- [1 .. 28]] isHappy :: (Int, Int) -> Bool isHappy (m, d) = (==) m $ (\(a, b) -> a + b) $ divMod d 10 main :: IO () main = print $ length $ filter isHappy cal