简单总结如何启动一个Erlang程序

一个例子

这是取自SPOJ (强烈推荐这个OnlineJudge,几乎支持任何编程语言,google之)的第一道题目的答案。从标准输入读入N行整数,遇到42就退出。

Why 42 ? 
the answer to life, the universe and everything!
-module(tested).
-export([main/0]).
main() ->
    case io:get_line("") of
        {error, Why} -> io:format(Why);
        "42\n" -> void;
        Data -> io:format("~s~n",[Data]), main()
    end.
 
%% your module MUST be named "tested"

第1种方式,在erlang的shell中交互式编译运行

max@max-gentoo ~/Study/GitLab/SPOJ $ erl
Erlang/OTP 17 [erts-6.1] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V6.1  (abort with ^G)
1> c(tested).
{ok,tested}
2> tested:main()
2>

第2种方式,在命令行的提示符中运行

erl -noshell -s tested main -s init stop

第3种方式,碉炸天的erlang一行(没有perl一行易用)

erl -eval 'io:format("Memory:~p~n",[erlang:memory(total)]).' -noshell -s init stop

第4种方式,escript脚本

#!/usr/bin/escript
 
main(_) ->
     io:format("Hello World~n").
上一篇:内核代码阅读(13) - sys_mmap


下一篇:erlang 小技巧总结