Erlang 学习笔记(一)
Erlang 学习笔记(一)
guibin.beijing@gmail.com
本学习笔记为初级教程,是对erlang_getting_started-5.4.pdf的总结,也是我个人学习过程中的总结。请各位高手指点,并给出学习建议,谢谢。
1. 顺序编程设计(Sequential Programming)
1.1 Erlang shell
启动Erlang,输入命令erl
引用$erl
Erlang R14B01 (erts-5.8.2) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.2 (abort with ^G)
1>
退出Erlang shell有三种方法: 按照进入Erlang shell时的提示输入 Control-G,看到如下输出:引用User switch command
-->
然后输入q回车,退出 和平常终止程序的习惯一样,使用Control-C,看到如下输出:引用BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded
(v)ersion (k)ill (D)b-tables (d)istribution
然后输入a回车就退出Erlang shell.使用Erlang自己的函数退出,输入halt().回车。引用$ erl
Erlang R14B01 (erts-5.8.2) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.2 (abort with ^G)
1> halt().
$
注意函数结尾的"."号,这是必须的。在Erlang中点号表示一条语句的结束。
1.2 模块和函数
Erlang的代码文件扩展名是.erl,文件名和改代码文件中的代码模块名称相同。比如名称叫做tut的模块,其代码文件名称应该是:tut.erl。比如其代码文件的内容如下:
引用-module(tut).
-export([double/1]).
double(X) ->
2 * X.
第一行-module(tut).定义了一个模块名称叫做tut,和该代码文件名相同,第二行-export([double/1]).说明该tut模块包含一个叫做double的函数能被tut模块之外的代码访问,并且这个函数有一个输入参数。第三行和第四行是名为double的函数的具体定义,别忘记函数定义完毕之后的"."号。
1.3 编译Erlang
将1.2中写完的代码保存到tut.erl,然后进入该文件所在目录下,输入erl命令,进入Erlang shell,输入c(tut).编译。
引用$ erl
Erlang R14B01 (erts-5.8.2) [source] [smp:2:2] [rq:2] [async-threads:0] [hipe] [kernel-poll:false]
Eshell V5.8.2 (abort with ^G)
1> c(tut).
{ok,tut}
编译之后输出{ok,tut}表明编译成功。去该目录下查看文件:
引用$ ls -l
total 32
-rw-r--r-- 1 guibin staff 460 2 25 10:44 tut.beam
-rw-r--r-- 1 guibin staff 60 2 24 10:43 tut.erl
发现生成了编译后的可执行文件but.beam。
1.4 调用函数
下面调用刚才定义好的函数double,计算30×2:
引用1> c(tut).
{ok,tut}
2> tut:double(30).
60
3>
tut:double(30).表示调用tut模块下面的double函数,输入参数为30,得到结果60。