day1: update - avoid using unecessary helpers
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
		
							
								
								
									
										18
									
								
								day1.hs
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								day1.hs
									
									
									
									
									
								
							@@ -1,24 +1,22 @@
 | 
				
			|||||||
import Data.List (sortOn)
 | 
					import Data.List (sortOn)
 | 
				
			||||||
import Data.Ord (Down (Down))
 | 
					import Data.Ord (Down (Down))
 | 
				
			||||||
import Lib (split)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
main :: IO ()
 | 
					main :: IO ()
 | 
				
			||||||
main = do
 | 
					main = do
 | 
				
			||||||
  input <- readFile "day1.in"
 | 
					  input <- lines <$> readFile "day1.in"
 | 
				
			||||||
  putStr "Q1: "
 | 
					  putStr "Q1: "
 | 
				
			||||||
  print $ q1 input
 | 
					  print $ q1 input
 | 
				
			||||||
  putStr "Q2: "
 | 
					  putStr "Q2: "
 | 
				
			||||||
  print $ q2 input
 | 
					  print $ q2 input
 | 
				
			||||||
 | 
					
 | 
				
			||||||
q1 :: String -> Int
 | 
					q1 :: [String] -> Int
 | 
				
			||||||
q1 = maximum . calories
 | 
					q1 = maximum . calories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
q2 :: String -> Int
 | 
					q2 :: [String] -> Int
 | 
				
			||||||
q2 = sum . take 3 . sortOn Down . calories
 | 
					q2 = sum . take 3 . sortOn Down . calories
 | 
				
			||||||
 | 
					
 | 
				
			||||||
calories :: String -> [Int]
 | 
					calories :: [String] -> [Int]
 | 
				
			||||||
calories =
 | 
					calories [] = []
 | 
				
			||||||
  map (sum . map read)
 | 
					calories input =
 | 
				
			||||||
    . filter (not . null)
 | 
					  let (cur, rest) = break null input
 | 
				
			||||||
    . split ""
 | 
					   in sum (map read cur) : calories (drop 1 rest)
 | 
				
			||||||
    . split '\n'
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user