From: Neil Smith Date: Thu, 24 Dec 2020 11:54:14 +0000 (+0000) Subject: Cleaning up the loops X-Git-Url: https://git.njae.me.uk/?p=advent-of-code-20.git;a=commitdiff_plain;h=a3256d3ffbd05ca56a87b36402827144d1ce4906 Cleaning up the loops --- diff --git a/advent15/src/advent15loop.hs b/advent15/src/advent15loop.hs index 7d2d258..f023cf9 100644 --- a/advent15/src/advent15loop.hs +++ b/advent15/src/advent15loop.hs @@ -25,6 +25,11 @@ runGame seed roundsNeeded = gameLoop roundsNeeded round word history readSTRef word +gameLoop targetRound round word history = + do gameStep round word history + `untilM_` ((== targetRound) <$> readSTRef round) + return () + -- gameLoop targetRound round word history = -- do ( gameStep round word history -- `untilM_` (do r <- readSTRef round @@ -44,11 +49,16 @@ runGame seed roundsNeeded = -- (gameStep round word history ) -- return () -gameLoop targetRound round word history = - do whileM_ (do r <- readSTRef round - return $ r /= targetRound ) - $ gameStep round word history - return () +-- gameLoop targetRound round word history = +-- do whileM_ (do r <- readSTRef round +-- return $ r /= targetRound ) +-- $ gameStep round word history +-- return () + +-- gameLoop targetRound round word history = +-- do whileM_ ((/= targetRound) <$> readSTRef round) +-- $ gameStep round word history +-- return () seedGame seed historySize = do round <- newSTRef $ length seed