RosettaCodeData/Task/Loops-While/Haskell/loops-while-3.hs

12 lines
245 B
Haskell

{-# LANGUAGE MonadComprehensions #-}
import Data.IORef
import Control.Monad.Loops
main :: IO ()
main = do
r <- newIORef 1024
whileM_ [n > 0 | n <- readIORef r] $ do
n <- readIORef r
print n
modifyIORef r (`div` 2)