LYSE-起步
2015-11-25 15:04
211 查看
数字
四则运算
进制
变量
值不可改变
首字母必须大写
_或_开头的变量,相当于哑元,可以用来接值,但不会保存数据。
原子
小写字母开头的标识符,或''包含的数据是原子数据。
原子数据放在原子表中,不会被垃圾收集。原子数据增加时,会持续消耗内存直至用尽内存或声明了1048577个原子数据。因此不要动态生成原子数据。
关键字不能用作原子数据。
布尔代数与比较符
布尔
and/or会对两端表达式求值,要使用短路逻辑,应该使用andalso/orelse。
判断相等
判断不等
与C++不同,1与true并不相等,0与false也不相等。
实际上,不同类型有下面的比较关系
元组
格式:{元素1,元素2,……,元素N}
列表
格式:[元素1,元素2,……,元素N]
列表可以放任意数据
如果元素全是可打印的ASCII值,那么显示的结果有点尴尬
“并”、“差”操作
“并”、“差”操作是右结合的
使用BIFs(内建函数)来获取列表数据
以上两个函数取数据时,使用这个匹配模式:[头|尾]。
"|"称为构造操作符。
适当列表&非适当列表
适当列表的最后一个单元是一个空列表。
当以“[2]”这样的形式来声明列表时,列表被构造成一个适当的列表。
而以"[1|2]”方式声明时,将构造一个非适当列表。
非适当列表用来匹配[head|tail]没有问题,但无法用于内建函数。
因此“[1|2]”应声明成“[1|[2]]”。
列表推导式
列表推导式格式:列表 = [表达式 || 生成表达式1,生成表达式2,……,生成表达式N,条件1,条件2,……条件M]
生成表达式格式:样式 <- 列表
位操作
二进制数据放在“<<”和“>>”中间。
二进制数据的格式:
值
值:大小
值/类型声明列表
值:大小/类型声明列表
类型声明列表包含的元素:
类型。可选值:
符号。可选值:signed | unsigned
端。可选值:big | little | native
单位。格式:unit:integer
元素之间用“-”连接
只想匹配开头的数据时,可以使用语法糖
二进制推导式
二进制生成列表
列表生成二进制
四则运算
1> 2 + 15. 17 2> 49 * 100. 4900 3> 1892 - 1472. 420 4> 5 / 2. 2.5 5> 5 div 2. 2 6> 5 rem 2. 1
进制
10> 2#101010. 42 11> 8#0677. 447 12> 16#AE. 174
变量
值不可改变
首字母必须大写
_或_开头的变量,相当于哑元,可以用来接值,但不会保存数据。
原子
小写字母开头的标识符,或''包含的数据是原子数据。
原子数据放在原子表中,不会被垃圾收集。原子数据增加时,会持续消耗内存直至用尽内存或声明了1048577个原子数据。因此不要动态生成原子数据。
关键字不能用作原子数据。
布尔代数与比较符
布尔
1> true and false. false 2> false or true. true 3> true xor false. true 4> not false. true 5> not (true and true). false
and/or会对两端表达式求值,要使用短路逻辑,应该使用andalso/orelse。
判断相等
6> 5 =:= 5. true 7> 1 =:= 0. false 8> 1 =/= 0. true 9> 5 =:= 5.0. false 10> 5 == 5.0. true 11> 5 /= 5.0. false
判断不等
12> 1 < 2. true 13> 1 < 1. false 14> 1 >= 1. true 15> 1 =< 1. true
与C++不同,1与true并不相等,0与false也不相等。
实际上,不同类型有下面的比较关系
number < atom < reference < fun < port < pid < tuple < list < bit string
元组
格式:{元素1,元素2,……,元素N}
1> X = 10, Y = 4. 4 2> Point = {X,Y}. {10,4} 3> Point = {4,5}. {4,5} 4> {X,Y} = Point. {4,5} 5> X. 4 6> {X,_} = Point. {4,5} 7> {_,_} = {4,5}. {4,5} 8> {_,_} = {4,5,6}. ** exception error: no match of right hand side value {4,5,6} 10> PreciseTemperature = {celsius, 23.213}. {celsius,23.213} 11> {kelvin, T} = PreciseTemperature. ** exception error: no match of right hand side value {celsius,23.213} 12> {point, {X,Y}}. {point,{4,5}}
列表
格式:[元素1,元素2,……,元素N]
列表可以放任意数据
1> [1, 2, 3, {numbers,[4,5,6]}, 5.34, atom]. [1,2,3,{numbers,[4,5,6]},5.34,atom]
如果元素全是可打印的ASCII值,那么显示的结果有点尴尬
2> [97, 98, 99]. "abc"
“并”、“差”操作
5> [1,2,3] ++ [4,5]. [1,2,3,4,5] 6> [1,2,3,4,5] -- [1,2,3]. [4,5] 7> [2,4,2] -- [2,4]. [2] 8> [2,4,2] -- [2,4,2]. []
“并”、“差”操作是右结合的
9> [1,2,3] -- [1,2] -- [3]. [3] 10> [1,2,3] -- [1,2] -- [2]. [2,3]
使用BIFs(内建函数)来获取列表数据
11> hd([1,2,3,4]). 1 12> tl([1,2,3,4]). [2,3,4]
以上两个函数取数据时,使用这个匹配模式:[头|尾]。
"|"称为构造操作符。
13> List = [2,3,4]. [2,3,4] 14> NewList = [1|List]. [1,2,3,4] 15> [Head|Tail] = NewList. [1,2,3,4] 16> Head. 1 17> Tail. [2,3,4] 18> [NewHead|NewTail] = Tail. [2,3,4] 19> NewHead. 2
适当列表&非适当列表
适当列表的最后一个单元是一个空列表。
当以“[2]”这样的形式来声明列表时,列表被构造成一个适当的列表。
而以"[1|2]”方式声明时,将构造一个非适当列表。
非适当列表用来匹配[head|tail]没有问题,但无法用于内建函数。
因此“[1|2]”应声明成“[1|[2]]”。
列表推导式
列表推导式格式:列表 = [表达式 || 生成表达式1,生成表达式2,……,生成表达式N,条件1,条件2,……条件M]
生成表达式格式:样式 <- 列表
3> RestaurantMenu = [{steak, 5.99}, {beer, 3.99}, {poutine, 3.50}, {kitten, 20.99}, {water, 0.00}]. [{steak,5.99}, {beer,3.99}, {poutine,3.5}, {kitten,20.99}, {water,0.0}] 4> [{Item, Price*1.07} || {Item, Price} <- RestaurantMenu, Price >= 3, Price =< 10]. [{steak,6.409300000000001},{beer,4.2693},{poutine,3.745}] 5> [X+Y || X <- [1,2], Y <- [2,3]]. [3,4,4,5]
位操作
二进制数据放在“<<”和“>>”中间。
二进制数据的格式:
值
值:大小
值/类型声明列表
值:大小/类型声明列表
类型声明列表包含的元素:
类型。可选值:
integer | float | binary | bytes | bitstring | bits | utf8 | utf16 | utf32
符号。可选值:signed | unsigned
端。可选值:big | little | native
单位。格式:unit:integer
元素之间用“-”连接
3> Pixels = <<213,45,132,64,76,32,76,0,0,234,32,15>>. <<213,45,132,64,76,32,76,0,0,234,32,15>> 4> <<Pix1,Pix2,Pix3,Pix4>> = Pixels. ** exception error: no match of right hand side value <<213,45,132,64,76,32,76, 0,0,234,32,15>> 5> <<Pix1:24, Pix2:24, Pix3:24, Pix4:24>> = Pixels. <<213,45,132,64,76,32,76,0,0,234,32,15>>
只想匹配开头的数据时,可以使用语法糖
8> <<R:8, Rest/binary>> = Pixels. <<213,45,132,64,76,32,76,0,0,234,32,15>> 9> R. 213
二进制推导式
二进制生成列表
1> [ X || <<X>> <= <<1,2,3,4,5>>, X rem 2 == 0]. [2,4]
列表生成二进制
4> << <<R:8, G:8, B:8>> || {R,G,B} <- RGB >>. <<213,45,132,64,76,32,76,0,0,234,32,15>>
相关文章推荐
- XMPP协议实现原理介绍
- JAVA环境变量配置
- mysql导出部分(指定)数据库表字段
- 领域驱动设计之仓储
- React+Node.js+Express+mongoskin+MongoDB
- win10系统桌面怎么设置自动排列图标?
- NSValue
- 《IOS疯狂讲义》雪花飘飘效果实现
- 程序员不可不知的英文词汇(4)
- 刨根问底Objective-C Runtime
- Macbook root pwd reset
- 人脸检测“A Fast and Accurate Unconstrained Face Detector”
- MYSQLdump参数详解
- Android.mk 高级写法
- 几种模式
- 汇智网
- 让你的电脑只爱你自己的U盘(别的u盘无法使用)
- Properties集合
- jquery之ajax请求工具类
- 海量数据处理算法—Bit-Map