Using lazy lists works eventually
authorNeil Smith <neil.git@njae.me.uk>
Fri, 16 Dec 2016 08:55:19 +0000 (08:55 +0000)
committerNeil Smith <neil.git@njae.me.uk>
Fri, 16 Dec 2016 08:55:19 +0000 (08:55 +0000)
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