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。
分享到:
相关推荐
【描述】虽然描述中没有具体的信息,但我们可以假设这是一个博主分享的关于Erlang学习的初步笔记,可能涵盖了基本语法、并发模型以及一些实用工具的使用。 【标签】"源码"和"工具"提示我们,这篇笔记可能包括了...
### Erlang学习笔记:深入解析Erlang编程与系统管理 #### 1. Erlang编程基础与资源 在深入探讨Erlang编程之前,我们首先需要了解一些基础资源和学习资料。Erlang官方网站([www.erlang.org](http://www.erlang.org...
Erlang是一种为构建大规模并发系统而设计的函数式编程语言。它的核心特性包括轻量级进程(processes)、消息传递和故障隔离。Erlang以其容错性和高可用性著称,广泛应用于电信、分布式系统和实时计算领域。 压缩包...
本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...
这些是我在学习过程中关于 Erlang 的笔记和主要引用。 检查部分以查看我从哪里获取报价。 请注意,此 repo 始终在进行中。 (我还没找到时间完成这本书。) 话题 陷阱 erlang 没有null值这样的东西 每个函数都需要...
**RabbitMQ学习笔记与软件插件详解** RabbitMQ是一种广泛应用的消息中间件,它基于AMQP(Advanced Message Queuing Protocol)协议,提供可靠的消息传递服务。在分布式系统中,RabbitMQ扮演着数据交换中心的角色,...
本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...
在这个“rabbitmq学习笔记.zip”压缩包中,我们可以期待找到一系列关于RabbitMQ的核心概念、安装教程、使用方法以及常见问题的详细说明。 首先,RabbitMQ的基本概念包括生产者(Producer)、消费者(Consumer)、...
在本篇学习笔记中,我们将首先了解RabbitMQ的安装过程。 1. **Erlang的安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。安装Erlang可以通过以下命令完成: ```bash sudo apt-get install ...
Erlang程序设计的书籍是学习这门语言的重要资源。《Erlang程序设计(第2版)》便是一本面向初学者的经典教材,提供了丰富的基础知识和深入的讨论,对理解和掌握Erlang语言有极大帮助。 对于Erlang的安装,目前有...
本篇学习笔记汇总了XMPP的基本概念以及多种编程语言下的客户端库介绍,旨在帮助读者快速了解并上手XMPP技术。XMPP作为一种强大的即时通讯协议,不仅具备高度的可扩展性,还支持多种编程语言。这使得开发者可以根据...
Redis 是一个高性能的键值存储系统,常被用于构建数据缓存、消息队列以及数据库。作为NoSQL数据库的一种,Redis具有丰富的数据结构支持,包括字符串(strings)、列表(lists)、集合(sets)、有序集合(sorted ...
### RabbitMQ 学习笔记知识点总结 #### 一、RabbitMQ 历史与背景 RabbitMQ 是一个基于 AMQP(高级消息队列协议)的开源消息中间件,由 Erlang 语言编写而成。AMQP 的出现填补了异步消息处理领域的标准化空白,特别...
这个“RabbittMQ软件,资料及笔记”压缩包可能包含了一系列关于RabbitMQ的学习资源,包括文档、教程、笔记等,旨在帮助用户深入理解和熟练掌握这一强大的中间件。 首先,让我们来了解一下RabbitMQ的核心概念和功能...
Redis(Remote Dictionary Server ),即远程字典...《狂神说Redis笔记》主要是狂神说发的笔记,通俗易懂,从入门到主从和实践,对Redis有一个很好的学习,通过本教程你可以一步一步了解 Redis 的应用,感兴趣的可以下载
【RabbitMQ学习讲义】 RabbitMQ是一个开源的消息队列系统,它基于高级消息队列协议(AMQP)实现,旨在提供可靠的、跨平台的消息传递。AMQP是一种应用程序层的开放标准,允许不同的系统、语言和应用之间进行无缝的...
【描述】"帖子" 提示我们这个项目可能包含了一系列的文章或博客帖子,这些帖子可能涵盖了Erlang语言的学习笔记、EVM的内部工作原理、如何使用Erlang进行并发编程、Erlang在分布式系统中的应用,以及与SCSS(Sassy ...
综上所述,通过本篇笔记的学习,读者可以全面掌握RabbitMQ的基本使用方法以及一些高级特性,这对于实际项目中的消息处理需求提供了强有力的支持。无论是简单的消息传输还是复杂的分布式系统架构设计,RabbitMQ都能...
RabbitMQ作为一款广泛应用的消息中间件,它的核心价值在于实现消息队列的功能,有效地处理系统中的高并发和异步任务,从而提高系统的稳定性和响应速度。本文将详细探讨RabbitMQ的基本概念、工作机制以及面试中常见的...
"compsci390-plp" 是一个与计算机科学390课程相关的压缩包,主要涉及编程语言范例的学习。这门课程可能涵盖了多种编程语言的理论、设计和实现,旨在让学生深入理解编程语言的原理及其应用。课程的重点可能包括了如何...