`
strugman
  • 浏览: 21266 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Programming Erlang 第二章学习笔记

阅读更多

一:开始
    每条语句以一个“.”结束
    Erlang遵守四则表达式的规则
    可以计算很大的数字

二:变量
    1.所有的变量名都必须以大写字母开头
    2.变量只能赋值一次。即变量不能多次赋值,否则会得到一个错误
      首先:用户定义的变量并不是真正意义上的变量;
      其次:"="并不是一个赋值操作符
    3.事实上"="是一个模式匹配操作符,对于一个未绑定变量来讲,它的行为类似与赋值操作
    4.变量有作用域,即多个函数内的同一个变量有不同的值
    5.Erlang中的=号是一个模式匹配操作符
    6.=号的作用是先计算右边的操作数类型,然后与左值的类型匹配
    7.对于一个变量,它只是一种简单的类型。未绑定变量作为左值时先是给它匹配上一个右值类型
    8.=号的右值可以是变量或其他的类型,如序列和列表
    注:由于变量的一次赋值性,在Erlang中没有共享内存,所以便于编写并行化的程序。
三:浮点数
    1. /号返回浮点数除法的商
    2.div 号返回整数除法的商
    3.rem 号返回整数除法的余数
四:原子量(Atoms)
    1.Erlang中atoms用来表示不同的常量
    2.atoms是全局性的
    3.atoms以小写字母开头,后面跟上数字,字符,下划线,或“@”,例如:: red,
       december, cat, meters, yards, joe@somehost, and a_long_name.
    4.atoms可以用单引号引起来,使用这种形式后可以创建大写字符开头的atoms,或
      者包含非数值字符的atoms,例如’Monday’, ’Tuesday’, ’+’, ’*’,
     ’an atom with spaces’
    5.atoms的值只是atom
五:元组(Tuples)
    1.使用tuple可以实现复杂的数据结构
    2.使用封闭的花括号创建tuple,其中的数据项是匿名的
    3.tuples可以嵌套使用
    4.tuple有垃圾回收机制,无需自己整理内存,当变量不使用后可以自动回收空间。
  5.可以将一个tuple绑定到一个变量上,之后这个变量也就有了相同的结构
  6.可以使用将一个结构相同的tuple变量赋值给另一个tuple(不能是tuple变量),则会将tuple变量中的
  对应值赋给左值tuple中的对应变量。例如Point = {point, 10, 45}.     {point, X, Y} = Point.之后
  则精确的将10赋给X,45赋给Y。其中的point可以是=号两边精确的匹配,体现=号的匹配作用
  7. 1> Person={person,{name,{first,joe},{last,armstrong}},{footsize,42}}.
   2> {_,{_,{_,Who},_},_} = Person.
   如上,_是一个占位符,这样可以用单个变量提取tuple中的值。在Erlang中称其为匿名变量。
六:列表(list)
    1.list可以用来存储一系列量。
    2.使用[]来创建列表。
    3.可以使用[X|Y]=L来提取L中的最左边的一个值到X,而将剩余的部分赋给Y
      例如:1> ThingsToBuy = [{apples,10},{pears,6},{milk,3}].
            3> ThingsToBuy1 = [{oranges,4},{newspaper,1}|ThingsToBuy].
            4> [Buy1|ThingsToBuy2] = ThingsToBuy1.
            5> [Buy2,Buy3|ThingsToBuy3] = ThingsToBuy2.
      之后则
       Buy1={oranges,4}  
       ThingsToBuy1=[{oranges,4},{newspaper,1},{apples,10},{pears,6},{milk,3}]
       ThingsToBuy2=[{newspaper,1}, {apples,10}, {pears,6}, {milk,3}].
       Buy2= {newspaper,1},   
       Buy3 = {apples,10},
       ThingsToBuy3=[{pears,6}, {milk,3}]
七:字符串(Strings)
    1.字符串实际上是只是一个整数的列表(list)
    2.字符串用双引号标记
    3.当一个列表中的元素都为可打印字符的ASCII码时显示出的就是这个列表对应的字符串。
    4.可以将$号放在一个可显示的字符前时,即可取出该字符的ASCII码
    5.Erlang的字符串中使用的字符集是Latin-1 (ISO-8859-1)
八:1.在shell中输入f()后可以是所有的已经绑定的变量解除绑定

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics