Erlang的并发特性源自语言本身而并非操作系统。它把现实世界模拟成一系列的进程,其间仅靠交换消息进行互动,因此Erlang简化了并行编程。在Erlang世界中,存在并行进程但是没有锁,没有同步方法,也不存在内存污染的可能,因为Erlang根本没有共享内存.
Erlang程序可以由几百万个超级轻量级的进程组成。这些进程可以运行在单处理器、多核处理器或者处理器网络上。
安装Erlang:
windows下:http://www.erlang.org/download.html中找到各个版本的下载列表.
启动shell:
在命令行输入erl
变量:
erlang所以变量都必须大写字母开头.
变量不变:
erlang的变量是单一赋值变量,单一赋值变量的值只能一次性的给定.一个变量一旦被赋了值,想再次改变它,就会得到一个错误.一个变量如果含有一个呗赋予的值,就称为绑定变量,否则,则称作自由变量.一开始,所有的变量都是赋值的.
模式匹配:
在Erlang中,=表示一个模式匹配操作,Lhs=Rhs,实际是这样一个过程,对右端求值(Rhs),然后将结果与左端(Lhs)进行模式匹配.
在等号的左边,无论是绑定的还是自由的,这些模式都只是变量。而元组和列表,通常用于存储复合数据。
Erlang没有可变状态,也没有共享内存,更没有锁,这一切都有利于并行化程序的编写。
浮点数:
“/”永远返回浮点数。
原子:
在Erlang中,原子用了表示不同的非数字常量值。
Erlang中原子是全局有效的,而且无需使用宏定义或者包含文件。
原子是一串以小写字母开头,后跟数字字母或者下划线(_)或者邮件符号(@)的字符。
一个原子的值就是原子自身。
Erlang是一个函数式的语言,每一个表达式都必须有值,整数和原子也不例外.
元组:
将一定数量的项组成单一的实体,就可以使用元组。将若干个以逗号分割的值用一对花括号括起来,就形成一个元组。
如:{mike,1.32}.这个元组一个原子和一个浮点值。
从元组中提取字段值:
Point={point,10,45}.
{point,X,Y}=Point.
X.
Y.
_表示占位符,表示哪些我们不关心的变量,符号_称为匿名变量。
列表:
将若干个以逗号分割的值用一对方括号括起来,就形成了一个列表。
定义列表:
如果T是一个列表,那么[H|T]也是一个列表,这个列表以H为头,以T为尾,竖线符号(|)可以将列表的头和尾分割开来,而[]则是空列表.
一个非空列表[X|Y]=L(这里X,Y都是自由变量),可以把列表的头提取到X,将列表的尾提取到Y.
字符串:
Erlang种没有字符串,字符串实际就是一个整数列表,用“”将一串字符括起来就是一个字符串.
最后记住 命令f()会让shell释放它所绑定过的所有变量.