17 lines
397 B
Haskell
17 lines
397 B
Haskell
import Control.Monad.ST
|
|
import Data.STRef
|
|
|
|
makeList :: String -> String
|
|
makeList separator = concat $ runST $ do
|
|
counter <- newSTRef 1
|
|
let makeItem item = do
|
|
x <- readSTRef counter
|
|
let result = show x ++ separator ++ item ++ "\n"
|
|
modifySTRef counter (+ 1)
|
|
return result
|
|
mapM makeItem ["first", "second", "third"]
|
|
|
|
|
|
main :: IO ()
|
|
main = putStr $ makeList ". "
|