Erlang学习初探-1

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

上次聊到了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).



                
解决服务器安装 `erlang-26.2.1-1.el9.x86_64.rpm` 时 `Failed dependencies` 错误,可尝试以下方法: ### 使用 dnf 安装依赖 `dnf` 是 Red Hat 系 Linux 系统常用的包管理工具,能自动处理依赖关系。可通过以下命令尝试安装依赖: ```bash dnf -y install libc.so.6(GLIBC_2.32)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.34)(64bit) libcrypto.so.3()(64bit) libcrypto.so.3(OPENSSL_3.0.0)(64bit) libm.so.6(GLIBC_2.29)(64bit) libstdc++.so.6(CXXABI_1.3.9)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.29)(64bit) libtinfo.so.6()(64bit) libz.so.1(ZLIB_1.2.7.1)(64bit) rpmlib(PayloadIsZstd) <= 5.4.18-1 ``` 执行上述命令后,`dnf` 会尝试从软件源中查找并安装所需的依赖包。若软件源中存在这些依赖,它们会被自动下载并安装。 ### 更新系统软件源 有时依赖缺失是因为软件源中的包版本过旧或不完整。可以更新系统软件源,然后再次尝试安装依赖: ```bash dnf update ``` 更新软件源后,再次尝试安装 `erlang-26.2.1-1.el9.x86_64.rpm`: ```bash rpm -ivh erlang-26.2.1-1.el9.x86_64.rpm ``` ### 手动下载并安装依赖包 如果软件源中没有所需的依赖包,可以手动从官方网站或其他可靠源下载相应的 RPM 包,然后进行安装。 首先,在官方网站或其他可靠源中查找包含所需依赖的 RPM 包。下载完成后,使用 `rpm` 命令进行安装: ```bash rpm -ivh package_name.rpm ``` 其中 `package_name.rpm` 是下载的 RPM 包文件。 ### 使用 --nodeps 选项(不推荐) 如果以上方法都无法解决问题,可以尝试使用 `--nodeps` 选项来忽略依赖检查进行安装。但这种方法可能会导致安装的软件无法正常工作,因为缺少必要的依赖: ```bash rpm -ivh --nodeps erlang-26.2.1-1.el9.x86_64.rpm ```
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值