Using the >> monadic function
Using the getCh primitive
A simple hello world + compilation (cf. Makefile)
Using function
Once the IO is done, we can access value and manage it as pure value.
infiniteRead
null :: [a] -> Bool test if a collection is empty
infiniteRead reverse the words from the sentence
words :: String -> [String] already exists, separate words by space char
Adding another way to run haskell file
some little small readLine routine
Same routine using the Control.Monad.when
small routine to sequencing multiple action.
same routine using the sequence monad (sequence :: Monad m => [m a] -> m [a])
mapM & mapM_ monad to map IO action
forever :: Monad m => m a -> m b
forM :: Monad m => [a] -> (a -> m b) -> m [b]