正如《代码的未来》中所说,为了充分利用多核,并发变成将成为未来发展的趋势,对于并发编程的支持,Erlang确实是不二之选,Erlang在国内仍然较为小众,经典书籍相对也要少很多,最终选择了《Erlang程序设计 第2版》作为了我的第一本Erlang入门书籍。
Erlang官方网站:http://www.erlang.org/
Erlang安装:
对于Ubuntu和Debian发行版可采用:apt-get install erlang 来安装;
对于其他 UNIX 和 Linux 平台,可以下载源代码并手工构建它,具体如下所示:
Download:http://www.erlang.org/download.html
1. 解压源代码:$ tar zxf otp_src_17.3.tar.gz 2. $ cd opt_src_17.3 3. $ ./configure 4. $ make 5. $ make install
Erlang是函数式编程语言,被设计主要用来解决自下而上的编写并发式、分布式、容错、可扩展和软实时系统等问题。
由于之前没有接触过函数式编程,还是从简单的顺序编程一步步来吧。
Erlang进入shell编程环境很简单,与Python类似,在终端直接输入erl即可,退出可使用 Ctrl+c 再输入 a 的方法,但这样可能导致某些数据的破坏,最好使用 q().
注释:%
变量:所有变量名都必须以大写字母开头,变量一经赋值,不许改变,
模式匹配操作:
Lhs = Rhs 意思是计算右侧的值,然后将结果与左侧的模式相匹配;
X = Expression,如果X之前没有被赋值,一定会匹配成功,X = AnotherExpression,则只有在Expression = AnotherExpression时才匹配成功,否则匹配失败;
浮点数:
使用“/”给两个整数做除法时,结果会自动转换为浮点数;
要从除法里获得整数,必须使用div和rem;例如:5 div 3. 结果为1,5 rem 3. 结果为2;
原子:
原子被用于表示常量值,具有全局性,原子以小写字母开头,后接一串字母,数字,下划线或@符号;
原子可以放在单引号中,可以创建以大写字母开头或包含字母数字以外字符的原子,如:‘Monday',‘+',‘a test paper'等,原子的值就是它本身;
元组:
为了方便理解,元组最好加上标签,例如:{point, 10, 45}.
创建元组:F = {firstName, joe}. L = {lastName, Tom}. P = {person, F, L}.
提取firstName:{_, {_, Who}, {_, _}} = P.
列表:
列表中的各元素可以是任何类型,[H|T]中H为列表头,T为列表尾,例如:
L = [{name, tom}, 1, 2.0, test, {point, 10, 23}].
[H|T] = L.
则,H = {name, tom}, T = [1, 2.0, test, {point, 10, 23}].
字符串:
字符串字面量就是用双引号围起来的一串字符,例如:
N = "Hello". "Hello"其实只是一个列表的简写,这个列表包含了代表字符串里各个字符的整数字符代码。
X = [97, 98, 99] .
打印出"abc".
io:format("~w~n", ["abc"]).
打印出[97, 98, 99]
[H|T] = "cat". H = 99, T = "at".
f()让shell忘记现有的任何绑定。
主要内容:语句的一般形式,模块,Erlang中的 import 语句,Erlang中的关键词,Erlang中的注释为了了解 Erlang 的基本语法,让我们在一个简单的 Hello World 程序先来看看。 示例 对上述程序需要注意下面的一些事项 - %符号是用来在程序中添加注释的; 模块声明中,就像其它编程语言中的命名空间一样。所以在这里,这个代码将是一个叫作 helloworld 模块的一部分; export 函数用于使得程序中定义的任何函数都可以使用。我们定义了一个名为 start 的函
本文向大家介绍Erlang在Ubuntu上构建并安装Erlang / OTP,包括了Erlang在Ubuntu上构建并安装Erlang / OTP的使用技巧和注意事项,需要的朋友参考一下 示例 以下示例显示了在Ubuntu上安装Erlang / OTP的两种主要方法。 方法1-预先构建的二进制程序包 只需运行此命令,它将从Erlang Solutions下载并安装最新的稳定的Erlang版本。 方
本文向大家介绍MYSQL必知必会读书笔记 第一章(基础),包括了MYSQL必知必会读书笔记 第一章(基础)的使用技巧和注意事项,需要的朋友参考一下 1.1 什么是数据库 数据库(database)是一个以某种有组织的方式存储的数据集合。 保存有组织的数据的容器(通常是一个文件或一组文件) 注意:人们通常使用数据库来代表他们使用的数据库软件。其实这是不正确的,确切的说,数据库软件应该成为DBMS(数
在 Erlang/OTP 中有一个基本概念叫监督树。这是一种建立在督程与佣程思想上的进程结构化模型。
1.1 流程控制语句 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能。 流程控制语句分类:顺序结构、选择结构、循环结构 1.2 顺序结构概述 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大
这10本书在Java程序员界都是被认为很棒的书。当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java。这个问题也就表明,相对于其他的教程和博客,Java书籍还是很重要的参考,主要表现在以下两点: 通常书籍是由比较权威的程序员来撰写的。 相比其他媒介,书籍对于内容的描述更加详细,解释更加明确。 这10本书是我个人非常喜欢的Java书籍,当我有时间的时候,我就会将它