`
hideto
  • 浏览: 2683036 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Programming Erlang读书笔记2:Getting Started

阅读更多
http://www.erlang.org/download.html下载Windows版本的Erlang,将bin目录加入到系统path中
cmd进去输入erl回车,就进入Eshell了,输入q().或者Ctrl+C/Break可以退出Eshell(命令末尾加.然后回车才会执行函数)

在Eshell里输入help().可以看到命令列表(实际上是函数列表)

基于Debian的Linux系统下可以用命令apt-get install erlang来安装Erlang,Mac OSX下可以使用MacPorts来安装

从源代码构建:
$ tar -xzf otp_src_R11B-4.tar.gz
$ cd otp_src_R11B-4
$ ./configure
$ make
$ sudo make install


CEAN(Comprehensive Erlang Archive Network)是类似于Py的CPAN的东东,也可以选择从CEAN安装Erlang环境

整数
Erlang里允许任意长度的整数
1> 123456789 * 987654321 * 112233445566778899 * 998877665544332211.

当然Ruby也一样

不可变的变量
Erlang里的变量首字母要求大写
1> X = 123456789.

Erlang里的变量像代数里的变量一样只允许赋值一次,可以使用f()函数来forget all variable bindings
赋过值的变量称为bound variable,否则称为unbound variable
“=”在这里不是赋值操作符,而是模式匹配符
在Erlang里一个变量只是一个值的引用,即一个指向存储值的区域的指针,而这个值不能被改变

Erlang里变量不可变最大的好处利于多核编程,因为Erlang不像C或Java,它没有mutable state,所以没有shared memory,没有锁

浮点数
1> 5/3.
1.66667
2> 4/2.
2.00000
3> 5 div 3.
1
4> 5 rem 3.
2
5> 4 div 2.
2
6> Pi = 3.14159.
3.14159
7> R = 5.
5
8> Pi * R * R.
78.5397


Atom
在Erlang里,Atom用来表示非数字常量,它类似于C或Java里的枚举类型
Atom以小写字母开始,后面接字母、下划线或@符
Atom也可以用单引号括起来,这样就可以使用大写字母开头或带空格等的Atom

Atom有点类似Ruby里的Symbol

Tuple
Tuple用来将一些元素分组,它使用大括号将元素括起来,并用逗号隔开
Tuple类似于C里的structs,但Tuple是匿名的,而且Tuple里的fields没有名字
Tuple里的items可以为任何类型,Tuple可以嵌套
推荐做法是Tuple的第一个元素为一个Atom,这样可以清楚的描述该Tuple
1> Person = {person,
               {name, joe},
               {height, 1.82},
               {footsize, 42},
               {eyecolour, brown}}.

Erlang也是有垃圾回收机制的,不用的内存会自动回收
取Tuple的值:
1> Point = {point, 10, 45}.
{point, 10, 45}
2> {point, X, Y} = Point.
{point, 10, 45}
3> X.
10
4> Y.
45

也可以用匿名变量“_”作为占位符放在不想取值的地方:
5> {_, _, A} = Point.
{point, 10, 45}
6> A.
45


List
List用来存放多个元素,它用中括号将元素括起来,并用逗号隔开
List左边第一个元素我们称为head,剩下的元素组成的List称为tail
例如对[1,2,3,4,5],head为1,tail为[2,3,4,5]
如果T为一个List,则[H|T]也是一个List,head为H,tail为T

从List取值的方法:
1> L = [1,2,3,4,5].
[1,2,3,4,5]
2> [A1|Rest] = L.
[1,2,3,4,5]
3> A1.
1
4> Rest.
[2,3,4,5]
5> [A2,A3|TheRest] = L.
[1,2,3,4,5]
6> A2.
1
7> A3.
2
8> TheRest.
[3,4,5]


字符串
Erlang里字符串必需用双引号括起来
Erlang的字符串使用Latin-1(ISO-8859-1)字符集
分享到:
评论
4 楼 linkerlin 2008-01-23  
erlang和scheme有点像
3 楼 blackanger 2008-01-08  
f()感觉有点不太方便啊,不知道有没有针对一个具体的变量来variable binding的函数呢?
2 楼 blackanger 2008-01-08  
erl和irb真有点像。
1 楼 blackanger 2008-01-08  
Erlang的语法有点意思。

相关推荐

    Introducing Erlang Getting Started in Functional Programming(2nd) epub

    Introducing Erlang Getting Started in Functional Programming(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Introducing Erlang: Getting Started in Functional Programming

    Introducing Erlang: Getting Started in Functional Programming by Simon St. Laurent English | 6 Mar. 2017 | ASIN: B06XHSP5SH | 212 Pages | AZW3 | 1.85 MB If you’re new to Erlang, its functional style...

    erlang programming

    2. **并发编程**:Erlang的并发模型是其独特之处。它通过轻量级进程(Lightweight Processes, LWP)实现并发,进程间通信(Inter-Process Communication, IPC)主要依赖消息传递。Concurrent Programming in ERLANG...

    Introducing Elixir - Getting Started in Functional Programming

    本书向读者介绍了Elixir如何将Erlang的强大的功能编程与一个看起来更像Ruby的方法相结合。读者将会了解Elixir如何简化Erlang的一些恶劣的角落,并通过强大的宏功能达到元编程。介绍Elixer是开发人员对于编程的开发...

    Programming Erlang.pdf

    本书《Programming Erlang》旨在帮助读者理解和掌握如何使用Erlang编程语言来构建并行世界中的软件。从目录可以看出,本书首先介绍了Erlang的基础概念和安装指南,随后逐步深入到更高级的主题和技术细节。通过这种...

    《Programming Erlang》

    《Programming Erlang》是Joseph Armstrong所著的一本详细介绍Erlang编程语言的书籍。这本书旨在帮助读者理解Erlang的设计哲学、语法特性以及如何利用它来构建高效、容错的并发系统。Erlang是一种静态类型、函数式...

    programming erlang src code

    2. 消息传递:Erlang的进程间通信通过异步的消息传递实现,这是一种非阻塞的方式,提高了系统的并发性能。源码分析可以帮助我们理解消息队列的工作原理,以及如何实现进程间的可靠通信。 3. 并发模型:Erlang的并发...

    erlang-23.2.1-1.el7.x86-64.rpm

    Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...

    Introducing Erlang Getting Started in Functional Programming(2nd) 无水印pdf

    Introducing Erlang Getting Started in Functional Programming(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除...

    读书笔记:ErlangOTP设计原则中文文档.zip

    读书笔记:ErlangOTP设计原则中文文档

    Pragmatic.Programming.Erlang.2nd.Edition

    ### 关于《Pragmatic Programming Erlang 第二版》的核心知识点概述 #### 一、书籍基本信息及背景介绍 《Pragmatic Programming Erlang 第二版》由Erlang之父Joe Armstrong撰写,是一本深入浅出地介绍了Erlang语言...

    erlang入门级练习:LeetCode OJ问题的部分erlang 源码

    我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...

    Erlang Programming 导读.pdf

    ### Erlang Programming 导读.pdf 知识点详解 #### 一、Erlang简介与特点 **Erlang**是一种通用的、并发性强的、容错性高的编程语言,适用于构建分布式系统的软件。它最初由爱立信公司开发,用于解决电信系统中的...

    Programming Erlang

    《Programming Erlang》是由Joe Armstrong编著的一本关于Erlang编程语言的经典著作。这本书深入浅出地介绍了Erlang的各个方面,旨在帮助读者理解和掌握这门强大的并发和分布式计算语言。 Erlang是一种静态类型、...

    Programming Erlang second edition

    《Programming Erlang second edition》是Joe Armstrong的经典著作,它是Erlang编程语言领域的权威指南,该书第二版于2013年首次发行。书中不仅覆盖了Erlang的核心语言和框架基础知识,还包括了重要的社区项目,例如...

    Centos7安装RabbitMQ的文档和安装包(包含erlang安装包).rar

    2. **RabbitMQ安装**: 安装RabbitMQ之前,我们需要添加RabbitMQ的官方YUM存储库: ``` curl https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add - echo "deb ...

Global site tag (gtag.js) - Google Analytics