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}}==