`
argan
  • 浏览: 129581 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Erlang 基础学习 1

阅读更多
Erlang Day 1 基础

• 容错,在多核CPU上性能好,因为share nothing,因此并发特别好,concurrency oriented programming
• erlang 支持任意长度的整数计算,不会溢出
• module 和 function名字都必须是小写
• 变量必须以大写字母开头
• 变量实际上是不变的(常量),就和代数(Algebra)一样
• 变量的声明周期是在声明的那个代码单元(Unit)内,没有所谓的全局或者私有
• Erlang 中只有public和private的函数,public的函数是指export出去的,其他的是private的
• 没有protected之类的,因为没有继承,没tmd对象这玩意儿,继承个p啊
• 一个函数的声明是名字加上参数个数,例如start/1,stop/0

Pattern match 模式匹配
•   对于 X = 1234:
∘ First, X is not a variable , X 不是一个变量,或者说只能赋值一次的变量
∘ Second, = is not an assignment operator. =不是一个赋值
∘ 实际上, = 应该是一个模式匹配符号. 应该是理解为一个assert,如果不是true的话,就有错误
∘ = 实际作的事情是,计算右边的值,然后和左边的做匹配
• 这样的话,就不会有所谓的side-effect,导致程序工作不正常了
• 在模式匹配时,下划线(_) 表示匿名变量,可以匹配任何值

数值计算
• 4/2  等于 2.0  , / 总是浮点数计算
• 5 div 3 等于 1   ,   5 rem 3 等于 2,整数计算

Atoms 相当于枚举类型
• 以小写字母开始,可以有下划线和@符号,如 monday,argan@mydomain
• 或者,用单引号括起来,可以包含其他符号,如大写字母,+,* 等

Tuple 类似于结构体

• Person = {argan,29}.
• {Name,Age} = P...
• Name = argan.
• Age = 29.

List 列表
• 第一个元素,称之为Head,
• []代表空的List
• [H|T] ,将H这个元素放到T的头上,行程一个新的List
• ThingsToBuy = [{apples,10},{pears,6},{milk,3}].
• ThingsToBuy1 = [{oranges,4},{newspaper,1}|ThingsToBuy].
• 通过模式匹配来将List的内容取出,例如:
• [Oranges|ThingsToBuy2] = ThingsToBuy1.
• Oranges =  {oranges,4}.

Strings   字符串
• 严格来说,本来没有字符串,只有一个整数列表
• 必须用双引号(")括起来
• Name = "hello".
• [83,117,114,112,114,105,115,101] = "Surprise".
• 当一个整数的List里所有的数字刚好代表一个可打印的字符时,那这个List就是一个字符串了
• 用$ 加字符可以取得相对应的ascii码,如$a = 97.
• [$a,$r,$g,$a,$n] = "argan".
• iso-8859-1

• 在erlang的shell里输入f(). 让shellforget所有已经bound的值。




分享到:
评论

相关推荐

    erlang中文基础教程

    1. Erlang Shell Erlang Shell 是一个交互式的编程环境,用户可以在其中编写和运行代码。用户可以在 Erlang Shell 中输入命令,例如数学运算符号,函数调用等。Erlang Shell 提供了一个交互式的环境,用户可以实时...

    erlang学习资料

    1. **函数式编程基础**:Erlang是纯函数式语言,这意味着程序中的函数没有副作用,只依赖于输入参数,不改变外部状态。理解函数式编程的核心概念,如不可变数据、高阶函数和模式匹配,是学习Erlang的基础。 2. **...

    erlang 中文基础教程

    ### Erlang 中文基础教程:理解Erlang Shell与模块函数 #### 1. Erlang Shell:编程者的交互式环境 Erlang Shell是Erlang编程语言提供的一种交互式编程...掌握这些基础知识,是深入学习Erlang编程语言的重要一步。

    Erlang游戏程序学习完整PDF手册

    - **Erlang基础**:包括基本语法、数据类型、函数定义、模式匹配、过程和模块等。 - **并发编程**:介绍Erlang的进程、消息传递、同步和通信机制,以及如何利用这些特性实现并发。 - **分布式Erlang**:讲解如何在...

    erlang 基础教程

    erlang基础教程,比较适合初学者学习使用

    erlang 学习笔记1

    【标题】"Erlang 学习笔记1" 在深入探讨Erlang这一强大的并发编程语言之前,我们先来理解一下Erlang的基本概念。Erlang是由瑞典电信设备制造商Ericsson开发的一种函数式编程语言,它最初设计的目的是为了处理分布式...

    erlang的学习pdf

    ### Erlang编程语言基础知识 ...通过以上介绍,我们不仅了解了Erlang的基础概念及其优势,还学习了如何安装配置Erlang环境以及简单的Erlang编程方法。希望这些信息能够帮助初学者快速入门Erlang编程。

    Erlang基础知识集锦

    Erlang是一种专为电信行业开发的并行编程语言和运行时系统,由爱立信公司...虽然本文档提供了Erlang的基础知识,但若要深入学习并使用Erlang进行编程,建议通过系统学习专门介绍Erlang的书籍或资料来获得更全面的了解。

    erlang编程 Introducing Erlang

    Simon St. Laurent的《Introducing Erlang》这本书深入浅出地介绍了这些概念,是学习Erlang的理想起点。通过阅读这本书,读者将能够理解Erlang如何处理并发、分布式计算和故障恢复,从而构建高效、健壮的软件系统。

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

    Erlang编程中文学习手册.pdf

    根据提供的文件信息,这份Erlang编程中文学习手册涵盖了Erlang编程语言的基础知识和一些进阶内容,旨在帮助读者从入门到初中级水平的提升。以下是手册中提到的Erlang编程的相关知识点。 首先,手册介绍了Erlang语言...

    两本erlang电子书

    这两本电子书——《Erlang and OTP in Action》和《Erlang程序设计》——都是深入学习Erlang语言和OTP的宝贵资源。 《Erlang and OTP in Action》这本书主要分为三个部分。第一部分介绍Erlang语言的基础知识,包括...

    erlang22最新下载包

    5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息传递为基础的并发模型著名,新版本可能会加强这方面的能力,更好地支持分布式应用程序。 6. **编译器和工具链**:Erlang的编译器和构建工具可能也得到了...

    erlang趣学指南

    Erlang趣学指南是一本面向初学者的入门书籍,旨在帮助读者从零开始学习Erlang语言的基础知识和编程技巧。 这本书的作者Fred Hébert是一位在一线拥有丰富实战经验的工程师,他通过轻松幽默的文风和清晰的讲解,向...

    erlang programming

    1. **Erlang语言基础**:Erlang是瑞典电信设备制造商Ericsson为解决实时通信系统需求而开发的。它采用函数式编程范式,强调纯函数和不可变数据,以及模式匹配和递归等特性。编程+Erlang.pdf可能会详细介绍Erlang的...

    Erlang资料大全

    这个压缩包“Erlang资料大全”显然是为那些想要学习或深入理解Erlang的人准备的,包含中文基础教程和入门代码。 在Erlang的学习过程中,首先我们需要理解其核心概念。Erlang是基于Actor模型的,每个进程(process)...

    Erlang程序设计(第2版)1

    总的来说,这本书全面覆盖了Erlang编程的各个方面,从基础语法到高级特性,从并发编程到分布式系统设计,是学习和理解Erlang的宝贵资源。对于想要利用Erlang开发高并发、高可用性的系统的人来说,这本书无疑是一本不...

    erlang深度分析.pdf

    Erlang有活跃的开源社区和丰富的学习资源,包括书籍、教程、以及大量的开源项目。JavaEye的电子书也是其中的一环,提供了专业的深入分析。 #### 17. 系统设计原则 Erlang遵循“让它失败”原则(Let It Crash),...

Global site tag (gtag.js) - Google Analytics