Erlang语言学习入门

近期研究RabbitMQ,发现它是基于Erlang实现的,于是对Erlang这么语言发生了兴趣,官网地址 http://www.erlang.org/ ,去下载一个最新的版本,我下载的是5.9.1版本,Windows版本R15B01 Windows Binary File (90.7 MB) ,   下载后一路解压安装即可,不用单独做什么设置,Erlang语言就可以使用了,然后就可以开始使用它里面的 Eshell程序 进行编程。

这是一个命令行程序,可以直接在里面输入表达式进行计算,例如来一个简单的:

Erlang R15B01 (erts-5.9.1) [smp:4:4] [async-threads:0]
Eshell V5.9.1  (abort with ^G)
1> 100+300.
400
2>

注意在语句的结尾输入“.”以表示完成,回车就开始计算结果了,如上面所示。

下面,我们用记事本写一个阶乘的Erlang程序:

-module(test).
-export([fac/1]).
fac(0) -> 1;
fac(N) -> N * fac(N-1).

这个程序定义了一个叫做 “test”的模块,里面包含一个名字叫做fac的函数,该函数有1个参数。

按照Erlang的约定,文件名必须跟模块名称一致,于是我们将这个文件保存为 “test.erl”,文件保存在D:\test1目录下。

问题来了,怎么运行这个文件呢?使用 cd 方法,改变Erlang当前的工作路径:

2> cd("d:/test1").
d:/test1
ok
3>

然后编译刚才的程序文件:

ok
3> c(test).
{ok,test}
4>

注意,编译命令c 的参数写 明文件里面定义的模块名称即可,也不用加双引号。编译后,将在当前工作目录下面生成文件“test.beam”

然后,可以执行模块中的方法了:

4> fac(10).
** exception error: undefined shell command fac/1
5> test:fac(10).
3628800
6>

注意,这里是使用自定义的“外部模块”,所以执行的时候需要写明 模块名称:方法名称(参数)。

如果下次需要重新加载编译好的程序怎么办?

很简单,使用 l(模块名称) 即可,如下例:

6> l(test).
{module,test}
7> test:fac(4).
24
8>

到此为止,安装、编写、编译、运行、加载 一个Erlang 语言程序的全过程就完成了,入门过程还是很简单吧?

Erlang 学习参考:

Erlang Programming拾零

用Erlang实现领域特定语言

另外安装后,它本身的帮助文档也比较全面,初学已经完全够用了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

Debian 和Ubuntu Mono 3.0 部署包

Mono 3.0 刚发布,Debian 的Mono打包工作也开始了, 这篇博客《Mono 3.0 Preview Packages for Debian and...

2097
来自专栏Ken的杂谈

ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门

本篇代码基于上一篇进行调整:https://github.com/ken-io/asp.net-core-tutorial/tree/master/chapte...

1453
来自专栏图形学与OpenGL

实验一 GDI生成像素点

1. 打开VC,新建MFC工程: 从开始->所有程序->Microsoft Visual C++ 6.0菜单中打开VC,也可单...

1691
来自专栏iOS开发攻城狮的集散地

runloop的解读

1916
来自专栏吴伟祥

常用的 Java核心包 原

JVM的常用包一般在C:\Program Files\Java\jre1.5.0_04\lib\rt.jar 一般都会放在C:\Program Files\J...

1613
来自专栏冷冷

Angrok 一个内网穿透服务

网上的搭建的教程挺多,尝试搭建的时候遇到了很多问题。 准备 # 升级yum yum update # 安装gcc yum install gcc 1、GO环境安...

1895
来自专栏大内老A

.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序

在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用。由于VS 2015目前尚不支...

19210
来自专栏有困难要上,没有困难创造困难也要上!

Pyinstaller ERROR: Assembly amd64_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none not found

4068
来自专栏xingoo, 一个梦想做发明家的程序员

键盘消息捕获--MFC

创建键盘接口:   有一个简单的方法:在窗口过程中增加WM_KEYDOWN逻辑,类似于复制了所有的WM_VSCROLL 和 WM_HSCROLL逻辑。但是,不管...

19710
来自专栏章鱼的慢慢技术路

Linux操作_常用命令操作练习

1654

扫码关注云+社区

领取腾讯云代金券