`
liyao20050101
  • 浏览: 14329 次
  • 性别: Icon_minigender_1
  • 来自: bj & 江西萍乡
最近访客 更多访客>>
社区版块
存档分类
最新评论

Programming Erlang 学习_原子和元组

阅读更多

 1.原子
  在C语言,类似于全局变量,java中类似于枚举。
 
  Erlang中的原子是全局有效的,而且无需使用宏定义或者包含文件。
  (1)原子是一串以小字母开头,后面也可以跟数字字母或者下划线或邮件符号(@)的字符。
  (2)使用单引号引起来的字符也是原子。使用这种形式,原子就可以使用大写字母作为开头或者包含非第一条中规定的字符。
  (3)一个原子的值就是原子本身。

 

2.元组
  创建一个元组:将若干个以逗号分割的值用一对花括号括起来.类似于C语言中的结构体。

  1).用于描述一个人的名字和身高信息元组

     

Student = {lee,1.75}

 2).在erlang中,元组没有类型声明,将创建的元组绑定到变Student.为了更好的描述这个元组,通常使用一个原子作为元组的第

     一个元素来标明这个元组所代表的含义。  元组可以嵌套,如果表达一个的详细信息定义:

   

 Student = {student,
                    {name,lee},
	     {age,23},	
	     {height,1.75}}.

 

3).元组引用已绑定的变量:

     

 Eshell V5.6.5  (abort with ^G)
 1> Name = {name,lee}.
 {name,lee}
 2> Age = {age,23}.
 {age,23}
 3> Student = {student,Name,Age}.
 {student,{name,lee},{age,23}}

 

4).从元组取出字段值:

   

    4> {name,Value} = Name.
    {name,lee}
     5> Value.
     lee

   通过模式匹配符'='来完成取值。变量定义时,记得首字母大字,不然erlang会当成原子了。

  

6> {name,value} = Name.
     ** exception error: no match of right hand side value {name,lee}

  如果是复杂的元组,从中取出所要的值。只需在所要的字段位置上使用变量绑定,不关心的值用符号"_"。

 

    1> Person = {person,{name,{first,alex},{last,lee}},{age,23}}.
     {person,{name,{first,alex},{last,lee}},{age,23}}
     2> {_,{_,{_,FirstName},_},_} = Person.
     {person,{name,{first,alex},{last,lee}},{age,23}}
     3> FirstName.
     alex

 

  以上就是今天学习的成果,继续努力。

 

   

分享到:
评论

相关推荐

    programming erlang src code

    8. 数据类型与模式匹配:Erlang具有丰富的数据类型,如原子、列表、元组等,以及强大的模式匹配功能。源码中可以看到如何利用这些特性编写简洁且高效的代码。 9. 面向连接的网络编程:Erlang的inet模块提供了一套...

    Concurrent Programming in ERLANG (P1-90)

    Erlang支持多种内置数据类型,包括整数、浮点数、原子、列表、元组等。每种数据类型都有其特定用途,例如列表常用于函数式编程中的数据操作,而元组则用于表示固定大小的数据结构。 **1.3 模式匹配** 模式匹配是...

    Concurrent Programming in ERLANG

    - 通过学习顺序编程的基础,读者可以更好地理解Erlang如何处理数据流和控制结构。 **1.2 数据类型** - Erlang中有多种基本数据类型,如整数、浮点数、原子等。 - 这些类型为构建复杂的数据结构提供了基础。 **1.3 ...

    Erlang程序设计 Programming.Erlang.Joe.Armstrong.英文版.pdf

    - **1.1 路线图**:介绍了学习Erlang的基本路线图,帮助读者了解学习过程中应该关注的重点。 - **1.2 再次开始**:可能指的是对那些有一定编程基础的读者而言,重新审视Erlang的特性和思维方式。 - **1.3 致谢**...

    Erlang编程

    - **基本操作**:包括启动交互式shell,进行简单的整数和浮点数运算,使用变量、原子、元组、列表等。 - **模式匹配**:Erlang中的一个重要特性是模式匹配,它允许开发者将数据结构中的信息提取出来。 - **模块化...

    erlang 语言程序设计

    《Programming Erlang: Software for a Concurrent World》是一本非常好的入门书籍,它不仅介绍了Erlang的基本概念,还提供了丰富的实例和实践指导。此外,还可以参考官方文档和其他在线教程,积极参与社区交流,以...

    Erlang程序设计[英文版]

    - **书籍推荐**:《Programming Erlang: Software for a Concurrent World》是一本很好的入门指南,由Erlang之父Joe Armstrong撰写,详细介绍了Erlang的基本概念和编程技巧。 - **在线课程**:许多在线教育平台提供...

    数据:Erlang的纯函数式和泛型编程

    Erlang 提供了多种内置数据结构,如列表、元组和二进制数据。此外,还可以自定义数据结构,如树、图等。这些数据结构在实现各种算法和功能时起到关键作用。 ### 7. Lenses, Traversable, Foldable, Category ...

    编程elixir-1.6

    主要数据类型包括原子(Atoms)、整数(Integers)、浮点数(Floats)、字符串(Strings)、列表(Lists)、元组(Tuples)和映射(Maps)。 #### 2.2 函数 Elixir的函数通过函数头定义,函数头包含模式匹配和返回...

Global site tag (gtag.js) - Google Analytics