-module(hello).
-export([main/1]).
The first line declares that this file constitutes a module called "hello". The second line declares that this module exports a function called "main" which takes one parameter. The rest of the file is the same except I've added some line feeds to tidy up the output:
main([]) ->
io:format("Hello World~n");
main([Arg]) ->
io:format("Hello ~s~n", [Arg]);
main([Arg|More]) ->
io:format("Hello ~s and~n", [Arg]),
main(More).
Now on the command line we compile this so:
C:\Users\polly\Erlang>dir hello.*
12/12/2013 10:15 227 hello.erl
07/11/2013 13:32 186 hello.erl~
C:\Users\polly\Erlang>erlc hello.erl
C:\Users\polly\Erlang>dir hello.*
12/12/2013 10:21 688 hello.beam
12/12/2013 10:15 227 hello.erl
07/11/2013 13:32 186 hello.erl~
Ok the beam file is the compiled code.
Now to run the shell from the command line with the command erl:
C:\Users\polly\Erlang>erl
Eshell V5.10.2 (abort with ^G)
1> l(hello).
{module,hello}
2> hello:main(["Curly","Larry","Moe"]).
Hello Curly and
Hello Larry and
Hello Moe
ok
3> q().
ok
4>
C:\Users\polly\Erlang>
The numbered prompt 1> 2> etc are prompts in the shell. The command l(hello) loads a module called "hello" from the appropriate beam file. We then call the functions with the module - colon - function name format, as hello:main(...)
The command q(). returns the atom ok and then exits from the shell.
ok.
No comments:
Post a Comment