Modulinos: Difference between revisions

Content added Content deleted
(Added Haskell)
Line 32: Line 32:


=={{header|C++}}==
=={{header|C++}}==
C++ programs also have scripted main by default.
C++ programs have scripted main by default.


<lang cpp>#include <iostream>
<lang cpp>#include <iostream>
Line 58: Line 58:


=={{header|Erlang}}==
=={{header|Erlang}}==
Erlang programs also have scripted main by default.
Erlang programs have scripted main by default.


<lang erlang>-module(scriptedmain).
<lang erlang>-module(scriptedmain).
Line 68: Line 68:
io:format("Number of Args: ~w~n", [length(Args)]),
io:format("Number of Args: ~w~n", [length(Args)]),
map (fun(Arg) -> io:format("Arg: ~s~n", [Arg]) end, Args).</lang>
map (fun(Arg) -> io:format("Arg: ~s~n", [Arg]) end, Args).</lang>

=={{header|Haskell}}==
Haskell programs also have scripted main by default.

<lang haskell>#!/usr/bin/env runhaskell

module ScriptedMain where

import System.Directory (getCurrentDirectory)
import System (getProgName, getArgs)
import Control.Monad (mapM_)

main :: IO ()
main = do
directory <- getCurrentDirectory
program <- getProgName
args <- getArgs

putStrLn $ "Directory: " ++ directory
putStrLn $ "Program: " ++ program
putStrLn $ "Number of Args: " ++ (show . length) args
mapM_ (\x -> putStrLn $ "Arg: " ++ x) args</lang>