Erlang_Programming_导读

合集下载

erlang程序设计第二版pdf

erlang程序设计第二版pdf

erlang程序设计第二版pdf《Erlang程序设计第二版PDF》是一本非常重要的计算机编程书籍,它对于学习和掌握Erlang编程语言具有极高的参考价值。

本文将介绍该书的内容和对读者的帮助。

《Erlang程序设计第二版PDF》是由Francesco Cesarini和Simon Thompson合著的一本经典教材。

该书首次出版于2009年,是对Erlang 编程语言进行全面介绍和深入讲解的权威指南。

第二版于2013年出版,对第一版进行了更新和扩充,更加贴近实际应用和最新的发展趋势。

该书的主要内容包括Erlang语言的基础知识、并发编程、错误处理、网络编程、分布式系统、OTP框架等方面。

通过逐步引导读者掌握Erlang的核心概念和编程技巧,帮助读者能够独立开发高效、可靠的Erlang应用程序。

《Erlang程序设计第二版PDF》的特点之一是注重实践。

书中通过大量的示例代码和实际案例,展示了Erlang在不同领域的应用,如电信、金融、游戏等。

这些实例不仅帮助读者理解Erlang的语法和特性,还能够培养读者解决实际问题的能力。

此外,该书还介绍了Erlang的调试和测试技术,以及如何优化Erlang程序的性能。

这些内容对于提高程序质量和效率非常重要,读者可以通过学习这些技巧,更好地应对实际开发中的挑战。

《Erlang程序设计第二版PDF》对读者的帮助是多方面的。

首先,对于已经熟悉其他编程语言的开发者来说,该书可以帮助他们快速掌握Erlang的核心概念和编程技巧,从而能够在Erlang项目中发挥作用。

其次,对于初学者来说,该书提供了一个系统学习Erlang的路径,帮助他们逐步掌握这门语言,并能够进行实际的编程实践。

最后,对于已经有一定Erlang编程经验的开发者来说,该书提供了一些高级主题和技巧,帮助他们进一步提升自己的编程水平。

总之,《Erlang程序设计第二版PDF》是一本非常有价值的编程书籍,无论是对于初学者还是有经验的开发者来说,都具有很高的参考价值。

Erlang编程基础

Erlang编程基础

Erlang编程基础Erlang是一种广泛用于并行和分布式应用程序的编程语言。

它是由瑞典电信公司Ericsson在20世纪80年代末到90年代初开发的,旨在解决电信系统在高度并发的情况下的通信和容错问题。

在过去的几十年里,Erlang 已经成为了编写高可靠、高并发的系统的首选语言之一。

Erlang的语法类似于Prolog,但也有类似于C语言的结构,并且支持面向对象的编程风格。

最重要的是,Erlang具有非常独特的并发模型,可以轻松地编写响应快速的服务器和分布式应用程序。

下面我们将介绍Erlang编程的基础知识。

1. 变量与类型在Erlang中,变量是以小写字母开头的单词或下划线组成的标识符,例如:```X = 1.Y = \"Hello, world!\".```Erlang中的主要数据类型包括整数、浮点数、布尔值、字符串和列表。

整数和浮点数的语法与C语言类似。

布尔值只有两个值:true和false。

字符串使用双引号括起来,例如:\"Hello, world!\"。

列表是相同或不同类型元素的列表,例如:[1, 2, 3]和[\"Alice\", \"Bob\", \"Charlie\"]。

2. 函数和模块Erlang是一种函数式编程语言,函数是Erlang编程的核心。

函数包括一个名称、参数列表和函数体,例如:```add(A, B) ->A + B.```这个函数将两个整数相加并返回其和。

函数定义以箭头符号(->)结束。

在Erlang中,函数通常分组到称为模块的文件中。

一个模块包含一组相关的函数和常量。

使用-module指令定义模块的名称,以及-export指令指定模块中可供其他模块使用的函数。

例如,以下是一个名为math的模块,定义了一个名为add的函数:```-module(math).-export([add\/2]).add(A, B) ->A + B.```要在其他Erlang代码中使用此模块中的函数,可加载该模块并调用函数:```-module(client).-compile(export_all).start() ->math:add(1, 2).```在这个例子中,我们定义了一个名为start的函数,加载了math模块,并调用了它的add函数。

Erlang语言

Erlang语言

Erlang语⾔1、Erlang介绍 Erlang是⼀种通⽤的⾯向并发的编程语⾔,它由电信设备制造商爱⽴信所辖的CS-Lab开发,⽬的是创造⼀种可以应对⼤规模并发活动的编程语⾔和运⾏环境。

Erlang问世于1987年,经过⼗年的发展,于1998年发布开源版本。

Erlang是运⾏于的,但是现在也包含有⾼性能Erlang计划(HiPE)开发的,⾃R11B-4版本开始,Erlang也开始⽀持脚本式解释器。

在上,Erlang属于多重范型编程语⾔,涵盖函数式、并发式及。

顺序执⾏的Erlang是⼀个及早求值, 单次赋值和动态类型的函数式编程语⾔。

Erlang 是⼀个结构化,动态类型编程语⾔,内建并⾏计算⽀持。

最初是由爱⽴信专门为通信应⽤设计的,⽐如控制交换机或者变换协议等,因此⾮常适合于构建分布式,实时软并⾏计算系统。

使⽤Erlang编写出的应⽤运⾏时通常由成千上万个轻量级进程组成,并通过消息传递相互通讯。

进程间上下⽂切换对于Erlang来说仅仅只是⼀两个环节,⽐起C程序的线程切换要⾼效得多得多了。

使⽤Erlang来编写要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道⾃⼰是在分布式运⾏。

Erlang运⾏时环境是⼀个,有点像Java虚拟机,这样代码⼀经编译,同样可以随处运⾏。

它的运⾏时系统甚⾄允许代码在不被中断的情况下更新。

另外如果需要更⾼效的话,也可以编译成本地代码运⾏。

2、Erlang语⾔特点1)并发性 - Erlang⽀持超⼤量级的并发进程,并且不需要操作系统具有并发机制。

2) - ⼀个分布式Erlang系统是多个Erlang节点组成的⽹络(通常每个处理器被作为⼀个节点)3) - Erlang具有多种基本的错误检测能⼒,它们能够⽤于构建容错系统。

4)软实时性- Erlang⽀持可编程的“软”,使⽤了递增式垃圾收集技术。

5)热代码升级-Erlang允许程序代码在运⾏系统中被修改。

旧代码能被逐步淘汰⽽后被新代码替换。

Erlang并发编程技术解析

Erlang并发编程技术解析

Erlang并发编程技术解析Erlang是一种高度并发的编程语言,被广泛应用于处理实时、分布式系统中。

在本文中,我们将深入探讨Erlang并发编程的技术,包括其基本原理、并发模型、进程通信、并发调试等方面的内容。

一、Erlang并发编程的基本原理Erlang的并发编程是建立在其独特的Actor模型基础上的。

在Erlang中,每个并发单位都是一个轻量级的进程,可以独立运行,接收消息,以及发送消息给其他进程。

这种基于消息传递的并发模型使得开发者可以编写出高度可靠、可扩展的并发程序。

二、并发模型Erlang采用了线程级并发模型,即每个Erlang进程都是一个轻量级的线程,共享同一个虚拟机。

Erlang的并发模型允许开发者创建成千上万个进程,并能高效地管理和调度这些进程。

这种模型使得开发者能够充分利用多核处理器的优势,实现真正意义上的并行计算。

三、进程通信在Erlang中,进程之间通过消息进行通信。

Erlang提供了一套强大的消息传递机制,使得进程间通信变得简单易用。

开发者可以通过发送消息和接收消息的方式来实现进程之间的通信。

此外,Erlang还提供了一些高级的通信机制,如共享内存、原子操作等,以满足不同场景下的并发需求。

四、并发调试Erlang提供了一些工具和技术来帮助开发者调试并发程序。

例如,开发者可以使用Erlang自带的调试器对程序进行分析和调试;还可以使用监视器来监控进程的运行状态;此外,Erlang还提供了一些函数和宏,用于处理并发编程中的常见问题,如死锁、竞争条件等。

五、并发编程的最佳实践在进行Erlang并发编程时,有一些最佳实践可以帮助开发者提高代码的可读性和维护性。

首先,设计良好的进程层次结构能够使得代码更加清晰,并提高代码的可扩展性。

其次,避免进程之间的紧耦合,采用松散耦合的设计能够减少错误和提高代码的可测试性。

此外,使用适当的异常处理机制能够提高程序的鲁棒性。

六、Erlang在实际应用中的案例Erlang的并发编程技术在实际应用中得到了广泛应用。

erlang学习1

erlang学习1

消息的发送
pid ! Message 将消息发给Pid所标识的进程,消息发送 是异步发送的。发送者执行时不会阻 塞,不需等待会继续执行后边的代码 执行后返回Message,这样你就可以用 类似 Pid1 ! Pid2 ! Pid3 ! Message的方 式,给三个进程发送消息
消息接收
receive Pattern1 [when GuardSeq1] -> Body1; ...; PatternN [when GuardSeqN] -> BodyN after ExprT -> BodyT end
一个简单的TCP客户端
需求
建立一个TCP连接到一个WEB服务器 将服务器返回的数据显示出来
先来代码
发_tcp:connect gen_tcp:send
c re
simple_client
gen_tcp
msg queue
ei ve
创造进程
创建一个新的进程,新进程执行Fun函数 pid=spawn(Fun) 将进程号注册成通用的名字 register(name, Pid)) 将自己的进程号(self())参数传给新进的 进程
一步一个脚印
格式化输出
2> io:format("~p~n",[A]). <<"HTTP/1.0 403 Forbidden\r\nServer: CachePower/1.3.1.dev\r\nMime-Version: 1.0\r\nDate: Tue, 25 Dec 2007 01:44:38 GMT\r\nContent-Type: text/html\r \nContent-Length: 1059\r\nExpires: Tue, 25 Dec 2007 01:44:38 GMT\r\nX-SquidError: ERR_ACCESS_DENIED 0\r\nX-Cache: MISS from \r \nConnection: ...... HREF=\"mailto:webmaster\">webmaster</A>. \n\n\n<BR clear=\"all\">\n<HR noshade size=\"1px\">\n<ADDRESS>\nGenerated Tue, 25 Dec 2007 01:44:38 GMT by (CachePower/1.3.1.dev)\n</ADDRESS>\n</BODY></ HTML>\n">> ok

erlangfile操作(IO编程)

erlangfile操作(IO编程)

erlangfile操作(IO编程)Erlang⽤于操纵⽂件I/O的模块有:file模块:打开、读、写、关闭⽂件已经操作⽬录的⽅法基本都在这⾥filename模块:提供平台独⽴⽅式⽤于操纵⽂件名filelib模块:file模块的扩展,提供了更多的实⽤⼯具,在file模块基础上构建io模块:⼀系列⽤于操作打开的⽂件的⽅法,解析格式、格式化输出等等。

1.打开⽂件:{ok,F}=file:open("data1.dat",read). %读模式打开{ok,F}=file:open("data1.dat",write). %写模式{ok,F}=file:open("data1.dat",[read,write]). %读、写、⼆进制模式⽀持的所有模式参见⽂档。

2.读取:(1)如果以⼀个Erlang term的⽅式读取,采⽤:io:read(F,'').其中第⼆个参数是提⽰符,⽤于在标准输⼊时作为提⽰。

这个⽅法有⼀个变形read/3read(IoDevice, Prompt, StartLine)第三个参数⽤于指定开始⾏数。

(2)如果是按字节读取,⽂件必须按raw模式打开采⽤:{ok, Data}=file:read(F,100).(3)按⾏读取:io:get_line(F, '').(4)读取整个⽂件的内容:{ok,Binary}=file:read_file("data1.dat").注意返回的是⼀个binary类型(5)随机读取:{ok,Binary}=file:pread(F, 22, 46).其中第⼆个参数是开始位置,第三个参数是读取的长度,返回的也是binary类型。

3.写⼊⽂件:(1)采⽤io:format/3⽅法:{ok, S} = file:open("test2.dat", write).io:format(S, "~s~n", ["Hello readers"]).io:format(S, "~w~n", [123]).其中的~开头的字符是⼀个个格式化命令,⽐如常见的:~c anscii码~f 浮点数~s 字符串~w Erlang term~p 与~w类似,不过当多⾏时将⾃动换⾏~n 显然,换⾏符(2)写⼊整个⽂件:file:write_file(File, IO)其中IO可以为list、integer或者binary类型(3)随机写⼊:file:pwrite(F, 10, <<"new">>)4.关闭⽂件:file:close(F).5.⽬录操作:都是linux命令风格的操作,cd("/home/dennis/"). %进⼊⽬录file:list_dir("."). %列出当前⽬录⽂件file:make_dir("test"). %创建test⽬录file:del_dir("test"). %删除test⽬录6.获取⽂件信息,⽐如⽂件⼤⼩,最后修改时间等等。

erlang入门项目经验分享

erlang入门项目经验分享
3、涉及到同一条数据被多个人同时操作需要对该数据进行锁定,以免发生 脏数据的现象。zm_db_client:lock(Table,key,Lock,LockTime,Timeout)。 4、使用原子时能节约的就节约。上限数量为1 M。 5、使用方法要恰当,节省空间和时间。 6、需要数据时再取,以免取了却不用,浪费了资源。 7、注释,必须写清楚,方便以后做维护。
3
逻辑代码的严谨、简练、可读性
manager
1、检查参数需严谨,前台数据不能信。
2、逻辑判断要周全,防止玩家钻空子。
3、数据存取要小心,同时同步需事务。
4、先付款后再到货,检查消耗要灵活。
5、更数据、写日志、抛bi,根据需求做推送,一一做全不能少。
3
注意事项总结
1、语言包,注意加前缀。
2、多条表同时被操作时,写事务,保证数据的同步同时性,事务内的事情 越少越好,只做逻辑判断和数据修改,因为锁数据的时间越短越好。Leabharlann erlang编程入门经验分享
前后台大体的通信流程
01
CONTENTS
后台代码的整体组成
02
逻辑代码块的严谨、简洁
03
目 录
注意事项总结
04
1
前后台大体的通信流程
2
后台代码的整体组成
port ----前后台沟通的端口
db----数据库get,set,delete
manager----port的逻辑 update----向前台推送 zm_session:send event----抛事件,bi等 zm_event:notify log----记日志,方便发现问题 zm_log:info timer----刷新活动(定时器)

Erlang学习笔记(一)linux操作系统-电脑资料

Erlang学习笔记(一)linux操作系统-电脑资料

Erlang学习笔记(一)linux操作系统-电脑资料工欲善其事,必先利其器,。

为了学习Erlang,当得先下载erlang,弄好环境才能开始Erlang的学习,下面给大家整理了一些例子,希望对各位有帮助。

Erlang 安装对于Linux 或Unix系列的平台,直接下载Souce File 然后编译安装。

代码如下复制代码tar -xzvf otp_src_17.0.tar.gzcd otp_src_17.0./configuremakesudo make install安装完成后,Erlang的二进制路径是/usr/local/bin/erlErlang之Hello World将下面Hello Wolrd程序保存为hello.erl代码如下复制代码-module(hello).-export([hello_world/0]).hello_world() -> io:fwrite("hello, worldn").编译我们的HelloWolrd,执行/usr/local/bin/erl进入Erlang Shell,然后输入下列执行对刚才的erl文件编译代码如下复制代码Erlang/OTP 17 [erts-6.0] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]Eshell V6.0 (abort with ^G)1> c(hello).{ok,hello}执行helloworld2> hello:hello_world().hello, worldok好了,Erlang的HelloWorld已经搞定了,电脑资料《Erlang 学习笔记(一)linux操作系统》(https://www.)。

如何退出Erlang Shell初次进入Erlang Shell,不知所措,该如何退出呢?有几种退出Erlang Shell的方法命令方式1:执行init:stop().命令方式2:执行halt().快捷键方式1:Control+C 然后选a快捷键方式2:Control+G 然后按q。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Programming Erlang导读》前言如果你没有学习过C语言,我建议先去学C,并学习计算机的编译原理。

因为那才是真正意义上的计算机程序设计。

否则,如果把erlang作为你开始学习计算机的第一门语言,你将感到非常困惑,而且对程序的理解将停留在应用层面,很难有所底层技术的突破。

本导读的作用是帮助你快速理解Erlang,并基于该理解去考虑Erlang语言是否适合您的应用开发。

要对Erlang全面了解,包括语法的各个方面,库函数的各个方面,以及Socket编程,文件操作等,你还是需要去仔细研读Erlang的官方著作——《Programming Erlang》。

不过,当我看完这本书的时候,还是认为其中的某些章节,作者并没有写清楚,尤其是在一些例子方面,因此,如果时间充裕,我接下来会尝试给大家提供一份更容易理解的Erlang例程,并基于这些例程详细说明Erlang的用法和作用。

2008-11-27(北京)第一、 Erlang是什么?首先,Erlang包括一个Erlang虚拟机,Erlang编译器,以及Erlang语法。

什么是虚拟机(Vitual Machine)呢?其实虚拟机可以理解是一个软件,如果你在windows操作系统上安装了Erlang的虚拟机,那么从进程的角度来讲,VM 的地位可你计算器上其他软件的地位是一样的,比如Office Word, 金山词典,Photoshop等。

只是VM所提供的功能和其他应用软件有所不同罢了。

Erlang编译器是一个exe可执行程序,当然,在Window下的编译器和UNIX 下的编译器有所不同,然而,所完成的功能都是把一个.erl文件转换为.beam文件。

.erl文件是用所谓的erlang语言编写的程序代码,而.beam文件是一个可以在Erlang VM环境下运行的“程序”。

Erlang语法就是规定好的Erlang编译器可以理解的一种程序设计语言。

然而,erlang语言和C语言还是两种不同层次的语言。

Erlang语言更应该定义为一种应用语言,因为它并不是面向CPU编程的语言,相比之下,C语言基本上是直接面向CPU编程的(这不是严格意义上的,实际上C语言会被编译为汇编语言,并再次编译为CPU能够执行的二进制指令)。

了解java的人可以把Erlang虚拟机理解为java虚拟机,对erlang语言和java 的语言则是对等的。

说的更通俗一点,相信你用过office word吧,首先你安装了Microsoft的Office 软件,然后编辑了一个.doc文档。

Office提供了你一种图形化编写.doc文档的功能,你可以通过输入法输入文字,你可以点击“文件”里面的“保存”菜单,把输入的文字保存在硬盘里,你还可以插入一个表格,当然,还包括照片等。

然而,要知道,最终生成的.doc文件不只是这些,它还包含了很多其他信息,比如图片在文件中的位置,文本的页面信息等。

好了,让我们把Erlang和office对比一下吧。

Erlang的虚拟机就好像Office程序,是独立的一个进程(独立的程序),.erl 文件就好像你所编写的.doc文件,erlang编译器把.erl文件编译为.beam文件,.beam文件是Erlang虚拟机能理解的程序文件,相比之下,office更高级,它可以直接理解.doc文件,而不需要再把.doc文件编译为其它格式。

Erlang提供了自己的语法,可以进行数据处理,数据的输入或者输出。

Office word也提供了数据处理以及数据输入、输出的接口,只是用法不同而已。

Erlang 生成自己对多线程的并发式应用很擅长,当然Office却声称自己对文字处理很擅长,的确是这个样子。

我之所以把Erlang和Office word对比,为的是让大家理解,Erlang不是一个纯粹的程序语言,它是为了面向某种应用而设计的语言,这就是为什么总有新的语言层出不穷。

你是否问过自己,为什么CPU只有一个,然而却又无数种计算机语言,比如Ruby,java, php,erlang…,未来可能会有新的语言产生。

实际上,计算机语言只有一种,那就是汇编语言,c,以及c++只是汇编语言的一种高级呈现方式,都是面向机器的语言,这种语法基本上代表了CPU的执行方式。

然后,那种基于虚拟机VM上的语言,大多数则是由于应用的需求而人为设计的一种语言,这种语言则是面向应用的,而不是面向机器的。

当然,erlang就是一种,它面向的应用就是并发程序。

举个例子,对于Web服务器,要求同时能够提供多个连接,而且彼此的连接要求并发,那么如何设计一个Web服务器,并发需求显得额外突出,因此,如果能有一些更好用的接口,那么的确是一件很美好的事情,就好像在office word里面,我们可以很容易的输入不同字体的文字,很容易把这些页面打印到纸张上。

道理是一样的。

因此,学习一门基于VM的应用类语言,重点应该放在该语言所提供的库函数,因为这些库函数是经过优化了的片段代码,相比之下,这类语言的语法则是次要的,因为你会发现不同的语言的语言差别甚大,Erlang的语法更像是从火星上掉下来的一样,令人乍舌。

不过没关系,如果你把Photoshop也称为一种程序的话,Photoshop的语法则更奇特,因为你的源代码甚至不是由字符构成,而是由图片构成。

好了,理解清楚了Erlang的架构,让我们开始下面的Erlang导读吧。

第二、 Erlang的基本语法安装Erlang。

上面已经介绍过,Erlang包括Erlang虚拟机,编译器,当然还有一个称为Shell的工具。

你可以到网站上下载Erlang的Windows安装版或者Linux版。

现在,开始运行Erlang Shell工具吧。

Shell是一个程序员和Erlang虚拟机交互的窗口,我们不需要详细的去探讨这个,试一下你就可以感觉到它是干什么的。

首先,让我们输入一个数字,然后以“点”结束,如下:23.可别忘了那个“点”,erlang语法中,“点”代表一个完整语句的结束,只有语句结束后,Erlang虚拟机才会执行该语句,VM会返回该表达式的值。

再来一次,输入:23+90.再输入如下,卡看会出现什么:¾Var1 = 90.¾Var2 = Var1 + 90.¾var3 = Var2 + 90.呵呵,不好意思,当你输入上面第三句话的时候,出现了错误的提示,原因是var3是一个“Atoms”,我们就把它翻译为“原子”吧。

而Var1,Var2都是变量。

为什么呢?Erlang语法规定,变量必须以大写字母开头,而原子则必须以小写字母开头,原子是有固定值的最小表达式单位。

比如说,23就是一个原子,它是一个整数的表达式的最小单位。

随着物理学的深入或者Atom应该翻译为“中子”或者“夸克”等,不过,老百姓可能知道的最小单位就是原子吧,因为大家都知道“原子弹”。

这里可别混淆,var3很像一个字符串,然而,它绝对不是一个字符串。

你可以尝试输入如下:¾“i love you”.¾i love you.¾i,love,you你能发现什么?第一个之所以正确,是因为你输入了一个字符串,这是一个合法的字符串表达式。

而第二个没有引号的i love you 代表了三个原子,三个原子是不能这样连写的,这就好像C语言中写:i =90 j=80一样,不合法。

而第三个加了逗号的表达式中,却是合法的,这就是Erlang的语法规定,两个顺序表达式之间,需要用逗号分隔,请注意这里的“逗号”,因为对于没有先后顺序的表达式,可以用分号“;”分开,这听起来有点含混,先别着急,之后你看你个例子后,自然会明白。

这会儿,你该对shell有所感觉了吧,它更像是一个Dos程序,我们可以和它交互。

让我们再输入如下一些代码:¾{i, love, you}.¾{1,11,21,1211,111221, 312211}¾[i,love,you].请注意,这里的“大括弧”和“中括弧”。

这是Erlang语法中的两个基本数据格式。

相信大家对第二个输入比较眼熟吧,这的确是我们高中数学里面的序列,你能猜出这个序列的规律吗?(坐公交车的时候想想吧)。

Erlang语法中,大括弧的叫做“序列”(Tuple),中括弧的叫做“列表”(List),为什么要序列和列表这种奇怪的数据类型呢?C语言中,大家都知道有struct类型吧,好啦,序列从某种程度上来讲有点类似struct的作用,你可以试着如下输入:¾{person, Name, Age} = {person, “haiii”, 20}.¾Name.¾Age.请注意,person是小写开头的,这就告诉erlang编译器,person是一个原子,而之后的Name和Age都是大写的,告诉erlang这是一个变量。

很高兴,你开始接触变量了,变量是以大写字母开头的,变量可以被赋值,就像前面讲到Var1,Var2等。

请看以下C程序struct person{char[20] Name;int Age;}在C语言总,要给struct对象赋值,应该写为: = “haiii”;person.Age = 20;相比之下,Erlang则是上面的书写形式。

最主要的是,你有没有发现,erlang 中定义person和给person赋值时一步完成的。

你可能会奇怪,为什么要一步完成呢?如果想再定义一个person对象该怎么办呢?如下:¾{person, Name2, Age2} = {person, “erlang”, 30}.怎么样,你可以再次输入以下代码查看结果。

¾Name2.¾Age2.既然有了序列(Tuple),那为什么还要有列表(List)呢?再我看来,序列主要用于参数传递,而列表则用于数据运算。

在erlang中,有这样一个语法[H|T],比如对于列表[1,2,3],输入如下:¾[Head | Tail] = [1,2,3].¾Head.¾Tail.¾[Head2 | Tail2] = Tail.你会发现Head被赋值为[1],T被复制为[2,3], erlang语法中,那个中分线“|”的左右就是把列表按照“头”和“尾”进行拆分,执行第四句后,Head2的值就是[2]了,这对于数据运算有点作用,暂不讨论。

erlang中有没有函数呢?当然有,不过,在我们了解函数之前,先来看看.erl 文件。

前面已经介绍过,.erl文件是erlang程序的源文件,就像.c文件一样,然而我们却一直在跟shell玩儿,那么接下来让我们进入标准的程序开发:源文件编辑 -> 编译 -> 执行三步。

相关文档
最新文档