Haskellで以下のようなコード(ほぼhttps://wiki.haskell.org/99_questionsの11と10の丸写し)を書いたところ、1行目で
error: parse error on input '|'
と言われてしまいました。
どなたか解決策をご教授ください
ListItem a = Single a | Multiple Int a
deriving (Show)
enc :: Eq a => [a] -> [(Int, a)]
enc [] = []
enc li@(x:xs) = ((length $ filter (==x) li),x):(enc $ filter (/=x) xs)
encodeModified :: Eq a => [a] -> [ListItem a]
encodeModified = map encodeHelper . enc
where
encodeHelper (1,x) = Single x
encodeHelper (n,x) = Multiple n x
main = do
print $ encodeModified "aaaaafheeeeeiiiiii"