Принимая во внимание, что String
- это просто [Char]
, сопоставление с образцом простое.
easter :: String -> Int
easter [] = 0
easter ('e':'g':'g':rest) = 1 + easter rest
easter (x:xs) = easter xs
В пустой строке явно есть 0 вхождений "egg".
Если строка начинается с «egg», есть хотя бы 1 вхождение.Удалите его и проверьте остаток строки.
Если строка начинается с чего-либо еще, удалите первую букву и продолжайте.