正如《代码的未来》中所说,为了充分利用多核,并发变成将成为未来发展的趋势,对于并发编程的支持,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,安装,基础语法
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。