Erlang
串行编程
- 常量
- 复合
- 保护式
- 子句
- 断言
- atom(X) X 是一个原子式
- constant(X) X 不是列表或元组
- float(X) X 是一个浮点数
- integer(X) X 是一个整数
- list(X) X 是一个列表或 []
- number(X) X 是一个整数或浮点数
- pid(X) X 是一个进程标识符
- port(X) X 是一个端口
- reference(X) X 是一个引用
- tuple(X) X 是一个元组
- binary(X) X 是一段二进制数据
- element/2, float/1, hd/1, length/1, round/1, self/0, size/1 trunc/1, tl/1, abs/1, node/1, node/0, nodes/0
- 比较
- X > Y X 大于 Y coerce
- X < Y X 小于 Y coerce
- X =< Y X 小于或等于 Y coerce
- X >= Y X 大于或等于 Y coerce
- X == Y X 等于 Y coerce
- X /= Y X 不等于 Y coerce
- X =:= Y X 等于 Y exact
- X =/= Y X 不等于 Y exact
- number < atom < reference < port < pid < tuple < list
- 元组首先按大小排序,然后再按元素排序。列表的比较顺序是先头部,后尾部。
- 如果比较运算符的两个参数都是数值类型且运算符为coerce型,则如果一个参数是 integer 另一个是 float , 那么 integer 将被转换为 float 再进行比较。
- exact 类型的运算符则不做这样的转换。
- 原语
- case
- case Expr of
- Pattern1 [when Guard1] -> Seq1;
- Pattern2 [when Guard2] -> Seq2;
- ...
- PatternN [when GuardN] -> SeqN
- _ -> ...
- end
- If
- if
- Guard1 ->
- Sequence1 ;
- Guard2 ->
- Sequence2 ;
- ...
- true -> ...
- end
- 算术表达式
运算符 |
描述 |
类型 |
操作数类型 |
优先 |
+ X |
+ X |
单目 |
混合 |
1 |
- X |
- X |
单目 |
混合 |
1 |
X * Y |
X * Y |
双目 |
混合 |
2 |
X / Y |
X / Y (浮点除法) |
双目 |
混合 |
2 |
X div Y |
X 整除 Y |
双目 |
整数 |
2 |
X rem Y |
X 除以 Y 的余数 |
双目 |
整数 |
2 |
X band Y |
X 与 Y 的位与 |
双目 |
整数 |
2 |
X + Y |
X + Y |
双目 |
混合 |
3 |
X - Y |
X - Y |
双目 |
混合 |
3 |
X bor Y |
X 与 Y 位或 |
双目 |
整数 |
3 |
X bxor Y |
X 与 Y 的位算数异或 |
双目 |
整数 |
3 |
X bsl N |
X 算数左移 N 位 |
双目 |
整数 |
3 |
X bsr N |
X 右移 N 位 |
双目 |
整数 |
3 |
列表编程
函数原型 |
作用 |
atom_to_list(A) |
将原子式 A 转换为一个ASCII字符列表 |
float_to_list(F) |
将浮点数 F 转换为一个ASCII字符列表 |
integer_to_list(I) |
将整数 I 转换为一个ASCII字符列表 |
list_to_atom(L) |
将ASCII字符列表 L 转换为一个原子式 |
list_to_float(L) |
将ASCII字符列表 L 转换为一个浮点数 |
list_to_integer(L) |
将ASCII字符列表 L 转换为一个整数 |
hd(L) |
返回列表 L 的第一个元素 |
tl(L) |
返回列表 L 的尾部 |
length(L) |
返回列表 L 的长度 |
创建@
2011-03-31
最后修改@
2014-01-12
相同类目/Categories