June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -1,4 +1,5 @@
import Control.Monad (when)
main = loop 1024
where loop n = when (n > 0)
(do print n

View file

@ -1,5 +1,10 @@
import Control.Monad (when)
import Data.IORef
import Control.Monad.Loops
whileM :: (Monad m) => m Bool -> m a -> m ()
whileM cond body = do c <- cond
when c (body >> whileM cond body)
main :: IO ()
main = do r <- newIORef 1024
whileM_ (do n <- readIORef r
return (n > 0))
(do n <- readIORef r
print n
modifyIORef r (`div` 2))

View file

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