`
guibin
  • 浏览: 363852 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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。
    1
    2
    分享到:
    评论

    相关推荐

    Global site tag (gtag.js) - Google Analytics