`
argan
  • 浏览: 126160 次
  • 性别: 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中文基础教程

    erlang中文基础教程

    erlang 基础教程

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

    erlang的学习pdf

    学习erlang的最基础最好的文档,pdf格式,非常有帮助,希望对有兴趣的很大帮助

    Erlang 教程中文版 - 极客学院

    本教程目的是告诉你如何快速高效地学习 Erlang 语言。教程中只讲述了 Erlang 的一些简单语法形式,而没有包 括所有复杂难懂的语法形式。此外,语法极大简化后的部分都使用 *manual* 标识出来了。

    Erlang编程中文学习手册.pdf

    很好的书,学习erlang必备! 包括基础、初级和中级以及一些高级的内容,适合入门和初中级学习使用。

    Erlang编程

    erlang开发的基础课程,讲述如何使用erlang进行并发编程,erlang开发的详细基础。

    学到一些Erlang,以造福所有人!Learn You Some Erlang for Great Good!

    本书是为那些具有命令式语言编程基础知识(例如C / C ++,Java,Python,Ruby等)并且可能会或可能不知道函数式编程(例如Haskell,Scala,Erlang)的人们学习Erlang的一种方法。 ,Clojure,OCaml等)。

    Erlang OTP 并发编程实战(高清中文版) pdf

    建议学习实践: 1. 要坚持实践高性能大并发编程的实践 ...2. Erlang基础->OTP高并发编程实践PDF->Elixir 3. 认真实践本书中的知识点, 动手练习, 高并发软件实时大容量的服务器开发可打败C++的大团队开发

    Matlab Erlang分布随机数.zip

    1.版本:matlab2019a,内含运行结果,不会运行可私信 2.领域:基础教程 3.内容:Matlab Erlang分布随机数.zip 4.适合人群:本科,硕士等教研学习使用

    Erlang入门手册

    erlong入门较好的学习资料,对初学者会有很好的帮助。

    Redis全套学习笔记 (带章节目录) 完整版pdf

    本文是一篇关于Redis全套学习笔记的文章,主要介绍了Redis的基础知识、数据结构、持久化、集群、高可用、性能优化等方面的内容。通过本文的学习,读者可以全面掌握Redis的使用和应用,提高自己的技术水平和实践能力...

    cpie-cn_r148.pdf

    erlang基础学习的好资料。 第1章 Erlang教程 串行编程 数据类型 模式识别 内置函数 并发 第2章串行编程 项式 模式匹配 表达式求值 模块系统 函数定义 原语 算术表达式 变量作用域 第3章列表编程 用于...

    RabbiyMQ3.6.15-windows版本

    1. Erlang环境配置。 2. RabbitMQ环境配置。 RabbitMQ采用 Erlang 实现的工业级的消息队列(MQ)服务器,所以在安装rabbitMQ之前,需要先安装Erlang; 在本人另外一个资源中有对应erlang版本,如有需要,可自行下载;...

    Y分钟学习X种语言

    附带有一些教程来指导你了解基础知识。 学着《七周七种语言》这本书的模式,下面是更简洁的版本。 动态语言 函数式编程语言 Web 语言 秘教语言 浏览器IDE 提升级别 动态语言 厌烦了长时间的编译、渴望一种轻量级的...

    LINGO软件的学习

    集是LINGO建模语言的基础,是程序设计最强有力的基本构件。借助于集,能够用一个单一的、长的、简明的复合公式表示一系列相似的约束,从而可以快速方便地表达规模较大的模型。 2.2 什么是集 集是一群相联系的对象,...

    高级java笔试题-GitBlogs:基于GitHub的个人博客

    高级java笔试题 GitBlogs(基于 GitHub 的个人博客) 读书,不是非做不可的事。而是想要去做的事。 今后你们可能会碰到很多很多你们不知道的事。...Java、JavaScript、C/C++、Python、Kotlin、Dart、Go、Erlang

    Java消灭星星简单小游戏源码-idris-ecosystem:idris-生态系统

    1 依赖类型函数式编程语言 2213 2 Idris 的 JVM 字节码后端 216 3 Idris 中的软件基础 174 4 使用 Idris 抽象和配置 X11 的 xmonad 169 5 用于 Idris 编译器的 Erlang 后端 161 6 Idris 的解析器组合器 159 7 Idris ...

    基于SpringBoot+Vue搭建的多功能体育场地智能管理系统源码+数据库+项目说明.zip

    3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于...

    C++MFC教程

    1、需要有好的C/C++基础。正所谓“磨刀不误砍柴工”,最开始接触VC时不要急于开始Windows程序开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训练自己的思维和熟悉一些...

Global site tag (gtag.js) - Google Analytics