1.= 操作符(模式匹配)
当看到一个表达式像 X = 123 时, 它的意思看似 "将整数 123 赋予变量 X", 但这种解读是不
正确的.= 不是一个赋值操作符, 它实际上是一个模式匹配操作符. 与其他函数式编程语言一样, Erlang 的变量只能绑定一次. 绑定变量的意思是给变量一个值
2. 变量和原子的语法
请注意 Erlang 的变量以大写字母开头. 所以 X,This 和 A_long_name 都是变量. 以小写字母
开头的名称 (比如 monday 或 friday) 不是变量, 而是符号常量, 它们被称为原子(atom).
3. 元组
如果想把一些数量固定的项目归组成单一的实体, 就会使用元组(tuple). 创建元组的方法
是用大括号把想要表示的值括起来, 并用逗号分隔它们.
4. 列表
列表 (list) 被用来存放任意数量的事物. 创建列表的方法是用中括号把列表元素括起来,
并用逗号分隔它们.
5. 逗号, 分号, 句号
逗号 (,) 分隔函数调用, 数据构造和模式中的参数.
分号 (;) 分隔子句. 我们能在很多地方看到子句, 例如函数定义, 以及 case,if,
try..catch 和 receive 表达式.
句号 (.)(后接空白) 分隔函数整体, 以及 shell 里的表达式.
有一种简单的方法可以记住这些: 想想英语. 句号分隔句子, 分号分隔子句, 逗号则分隔下
级子句. 逗号象征短程, 分号象征中程, 句号则象征长程.
6.fun: 基本的抽象单元
Erlang 是一种函数式编程语言. 此外, 函数式编程语言还表示函数可以被用作其他函数的参
数, 也可以返回函数. 操作其他函数的函数被称为高阶函数(higher-order function), 而在 Erlang
中用于代表函数的数据类型被称为 fun.
7. 关卡
关卡 (guard) 是一种结构, 可以用它来增加模式匹配的威力. 通过使用关卡, 可以对某个
模式里的变量执行简单的测试和比较. 假设想要编写一个计算 X 和 Y 之间最大值的 max(X, Y)函
数. 可以像下面这样用关卡来编写它:
- max(X,Y)when X>Y -> X;
- max(X,Y)-> Y
来源: http://www.bubuko.com/infodetail-3313453.html