Tidying
[advent-of-code-16.git] / advent04.hs
index fb2839ece8accc5aadc20d24d091f5ce39bb9e18..b8c095ed4ca033040652a89564093a72a69e4c09 100644 (file)
@@ -1,4 +1,6 @@
-import Data.List (last, intersperse, sortBy, intercalate, isInfixOf)
+module Main(main) where
+
+import Data.List (last, intersperse, sortBy, intercalate, isInfixOf, init)
 import Data.List.Split (splitOn)
 import Data.Char (isLetter, ord, chr)
 import qualified Data.Map.Lazy as Map
@@ -36,13 +38,14 @@ part2 rooms = do
 parseLine :: String -> Room
 parseLine line = Room {name=name, sector=sector, checksum=checksum}
     where components = splitOn "-" line
-          name = intercalate "-" $ reverse $ tail $ reverse components
+          name = intercalate "-" $ init components
           sector = read $ head $ splitOn "[" $ last components
           checksum = filter (isLetter) $ last components
 
 countedLetters :: String -> [(Char, Int)]
 countedLetters name = sortBy sortCLetter $ unsortedCountedLetters name
-    where unsortedCountedLetters name = Map.toList $ Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name]
+    where unsortedCountedLetters name = 
+            Map.toList $ Map.fromListWith (+) [(c, 1) | c <- filter (isLetter) name]
 
 sortCLetter :: (Char, Int) -> (Char, Int) -> Ordering
 sortCLetter (l1, n1) (l2, n2)