《Erlang程序设计》学习笔记-第2章 入门

本文是《Erlang程序设计》第二章的学习笔记,涵盖了Erlang的安装、注释、变量特性、运算符、数据类型如整数、原子、元组和列表的使用,以及在Shell中的操作。重点讲解了变量的不可变性、模式匹配以及列表和元组的操作方法。
摘要由CSDN通过智能技术生成

第二章 入门

1. 用cean可以安装erlang及erlang的一些应用程序。
2. %是erlang语言的注释,注释从%开始,一直到行尾。一般情况下,erlang源程序中%%做为注释,我想可能是看起来比较显眼。
3. erlang的整数运算没有误差,它可以计算超大的整数,进到你的计算机内存没有了。 16#cafe 代表16进制数CAFE,2#1001 代表二进制数1001。“#”在记录中也有应用。
4. erlang中的变量是不可变的,只能一次赋值。=号在erlang里应试看做是一个匹配符,而不是一个赋值符。
5. 一个变量如果含有一个赋予的值,就称为绑定变量,否则就是自由变量。
6. erlang变量的作用域是一个函数。
7. =号是一个模式匹配操作,对于Lhs=Rhs,首先对Rhs求值,然后将其与Lhs进行模式匹配。一个自由变量可以匹配任何的模式并绑定,一个绑定的变量只能匹配与其相同值模式。
8. /(除法)永远会返回浮点数,即使是两个整数相除。div是整除,rem是求模(取余)。

9. 原子:原子用来表示不同的非数字常量值。原子是一串以小字字母开头的,后跟数字、字母或下划线或@字符。
10. 原子是全局有效的,而且无需使用宏定义或者包含文件。
11. 使用单引号(双引号括起来的是一个列表)引起来的字符也是原子,这种形式的原子可以包含其它正常表示时不允许的字符。
12. 一个原子的值就是原子的自身。
13. erlang是一个函数式的语言,所以任何一个表达式都有值,所以原子和整数也都有值。

14. 元组(tuple)用来表示一定数量的项组成的单一实体。元组大体相当于C语言中的结构。
15. 用逗号(,)分割的一些值用{}括起来就形成了一个元组。
16. 一般用元组中的第一个值(用原子)来说明元组的用途(谁让元组没有名字呢),如{point, 10, 45}, {person, {name, karl}, {height, 1.78}}
17. 元组中提取字段值:用模式匹配,Point={point, 10, 45}. {point, X, Y} = Point. 此时X|->10, Y->45。另外,不同长度的列表是不能匹配的,如{X,Y} = {1,2,3}会匹配失败。
18. _(下划线)是一个匿名变量,可以在模式匹配时用来匹配一此我们不关心的值。如:{_, _, Y} = Point.

19. 列表用来存储数目可变的东西。
20. 将若干个以逗号分割的值以[]分开,就形成了一个列表。
21. 列表中的第一个元素是头(通常用H表示),剩下的所有的值是尾(通常用T表示)。
22. 如果T是一个列表,[H|T]也是一个列表,其中的|将头和尾连接(在模式匹配时是分割)开来,[]代表一个空的列表。T必须是一个列表(如果不是会有问题),即使是一个元素也要做成列表。另外[E1,E2,..., En|T],可以将多个元素加入到列表中。
23. 列表好像是一个栈,它的插入读取操作都是从头开始的。
24. 用模式匹配从头开始操作列表,[X|T] = [1, 2,3]. or [X,Y|T] = [1,2,3,4]

25. erlang中字符串必须用双引号(“)括起来(单引号是原子),其实质是一个整数的列表。
26. 如果一个列表中所有项都是可打印字符,则在shell中显示为一个字符串。
27. 可以用$字符来取得一个字符的整数值, 如$a的值是整数32
28. erlang中字符串是Lation-1编码的,也就是ISO-8859-1的。但它只关心以某种编码方式编码的一串整数值列表,所以,我想其它编码的字符串也应该可以保存在列表中。我测试了一个在可以显示中文的终端时保存一个中文字符,是可以再正常显示出来的。

29. shell中的命令f()可以释放所有绑定过和变量。f()应该是一个内置函数吧?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值