读书人

《Erlang程序设计》学习札记-第3章 顺

发布时间: 2012-11-05 09:35:11 作者: rapoo

《Erlang程序设计》学习笔记-第3章 顺序型编程
摘自:http://hi.baidu.com/zai215837829/blog/item/2f4fc2c770c882019d163d80.html

1. 自定义的for循环结构:

    max(X, Y) when X > Y -> X;    man(X, Y) -> Y.


7. 可以在任何允许使用表达式的地方使用断言,当断言用于表达式时,它要么返回原子true(认为是求值成功),要么返回原子false(求值失败)。


8. 断言序列:
一组用逗号分隔的断言表达式表示的是and关系,即所以的断言为true,整个断言序列才为true。
一组用分号分隔的断言表达式表示的是or关系

9. 断言谓词:
is_atom(X)
is_binary(X)
is_constant(X)
is_float(X)
is_function(X)
is_function(X, N)
is_integer(X)
is_list(X)
is_number(X)
is_pid(X)
is_port(X)
is_reference(X)
is_tuple(X)
is_record(X, Tag)
is_record(X, Tag, N)

10. 断言BIF
abs(X) X的绝对值
element(N, X) 元组X的第N个元素
float(X) 将数字N转换为浮点数
hd(X) 列表X的头部
length(X) 列表X的长度
node() 当前节点
node(X) 进程X的节点
round(X) 将数字X转换为整数(四舍五入)
self() 当前进程的标识符
size(X) X的大小,X为元组或二进制数据
trunc(X) 将数字X转换为整数(截取)
tl(X) 列表X的尾部

11. 尽量在一个列表的头部进行操作,尽量避免用到List++[H]这样的代码,除非List很短。通常要以自然顺序创建列表。规则如下:
(1)总是在列表头部添加元素。
(2)从一个输入列表的头部提取元素,然后把它们加在一个输出列表的头部。输出列表中的结果与输入列表的顺序相反。
(3)如果顺序至关重要,那么调用经过高度优化的函数list:reverse/1。 (这个函数是在erlang虚拟机中实现的,经过了高度的优化)。
(4)避免违反这些原则。

读书人网 >编程

热点推荐