Erlang学习初探-1

本文介绍了Erlang中的基本单位——模块,讲解了模块的编译和运行过程,以及如何在模块中定义和导出函数。此外,还提到了Erlang中的三种符号:逗号、分号和句号的用途。最后,讨论了同名但参数不同的函数的使用和导出方式。
摘要由CSDN通过智能技术生成

上次聊到了Erlang的基础知识,包括怎样安装和启动、原子、元素、元组、列表、模式匹配等,今天接着来看点新东西吧。

  • 先说说 模块(module)

模块(module)是Erlang中的基本单元,类似于Delphi中的单元文件,模块文件以.erl为扩展名,其中包含了我们编写的函数,运行模块钱需要编译,编译生成与模块同名但扩展名为.beam的文件。例如我们编写了名为double.erl的模块文件:

-module(double)
-export([dou/1]).

dou(X) -> X * 2.

接下来编译运行,在erlang的命令行输入:

Eshell V5.8.3  (abort with ^G)
1> c(double).
{ok,double}

2> double:dou(3).
6
3> 

以上就是编译运行的结果,是不是特别简单。

接下来简单解释一下:

-module(double).  %% 模块名为double,注意:保存的文件名需和模块名一致

-export([dou/1]).     %% 此模块中包含名为dou一个参数的函数,且此函数可在模块外部使用

至于函数体部分就不需要解释了吧。


c(module). 是编译的命令,表示将模块编译成名为module.beam的文件。
{ok,double} 表示编译成功,模块已经被编译并加载。

谈谈符号:

Erlang中会遇到这三种符号:

  1. 逗号 ","——分隔函数、模式中的参数以及数据构造器;
  2. 分号 ";"——分隔子句;
  3. 句号 "."——表示完整的函数或表达式.

  • 同名不同目的函数
可理解为使用不同参数的函数重载,所谓“目”,就是指参数。 在Erlang中,同名不同目的函数被视为不同函数。看看如下例子:

简单起见,看书上的吧:

sum(L)  -> sum(L, 0).

sum([], N) -> N;

sum([H | T], N) -> sum(T, H + N).

补充一下,如果你想在外部使用这个sum函数(一个和两个参数的),请像前面一样,加上:

-export([sum/1, sum/2]).

今天累了,间断一点,就到这里吧,晚安,各位(虽然可能count == 0).


                
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值