Using lazy lists works eventually
[advent-of-code-16.git] / advent15l.hs
index e3c97fb2cb92f263dd68e7c361ab70e4ee25ab2b..f04ab9c85103337c12aa3bab83c98f7dac9878d8 100644 (file)
@@ -12,8 +12,8 @@ part1 :: [[Int]] -> IO ()
 part1 disks = print $ head $ filter (canFall disks) [0..]
 
 part2 :: [[Int]] -> IO ()
-part2 disks = print $ head $ filter (canFall disks2) [0..5000000]
-    where disks2 = id $! map (take 5000000) $ disks ++ [drop 7 $ drop 0 $ cycle [0..(11-1)]]
+part2 disks = print $ head $ filter (canFall disks2) [0..]
+    where disks2 = disks ++ [drop 7 $ drop 0 $ cycle [0..(11-1)]]
 
 canFall :: [[Int]] -> Int -> Bool
 canFall ds i = all (\d -> (d!!i) == 0) ds