even prettier!
Haldean Brown
3 years ago
1 | 1 | import Data.Char |
2 | 2 | import Data.Function |
3 | 3 | |
4 | collapse1 (a:b:ss) = if toLower a == toLower b && a /= b then collapse1 ss else a:(collapse1 $ b:ss) | |
4 | collapse1 (a:b:ss) | |
5 | | toLower a == toLower b && a /= b = collapse1 ss | |
6 | | otherwise = a:(collapse1 $ b:ss) | |
5 | 7 | collapse1 s = s |
6 | 8 | collapse s = let cs = collapse1 s in if cs == s then s else collapse cs |
7 | 9 | main = readFile "input.txt" >>= (collapse >>> length >>> subtract 1 >>> print) |