Nested function: Difference between revisions
Content added Content deleted
(added sml) |
(added haskell) |
||
Line 50: | Line 50: | ||
Console.WriteLine(MakeList(". "));</lang> |
Console.WriteLine(MakeList(". "));</lang> |
||
=={{header|Haskell}}== |
|||
<lang 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 ". "</lang> |
|||
=={{header|J}}== |
=={{header|J}}== |