Tidying
[advent-of-code-16.git] / advent04.hs
index e48c257ac812e1d1caa0ffd54288a44ce980c8ad..b8c095ed4ca033040652a89564093a72a69e4c09 100644 (file)
@@ -1,6 +1,6 @@
 module Main(main) where
 
 module Main(main) where
 
-import Data.List (last, intersperse, sortBy, intercalate, isInfixOf)
+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
 import Data.List.Split (splitOn)
 import Data.Char (isLetter, ord, chr)
 import qualified Data.Map.Lazy as Map
@@ -38,13 +38,14 @@ part2 rooms = do
 parseLine :: String -> Room
 parseLine line = Room {name=name, sector=sector, checksum=checksum}
     where components = splitOn "-" line
 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
           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)
 
 sortCLetter :: (Char, Int) -> (Char, Int) -> Ordering
 sortCLetter (l1, n1) (l2, n2)