packages feed

hid-examples-0.2: ioref.hs

import Data.IORef
import Control.Monad

sumNumbers :: IO Int
sumNumbers = do
   s <- newIORef 0
   go s
   readIORef s
 where
   go s = do
     putStr "Enter next integer number (empty line to finish): "
     n <- getLine
     when (not $ null n) $ do
       let num = read n
       modifyIORef' s (+ num)
       go s

main = do
  s <- sumNumbers
  putStr "Your sum is: "
  print s