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

erlang(初级)

阅读更多
早就听过erlang,但是今天才有时间开始动手,内心一阵惭愧啊。

介绍和安装,请自己baidu

语法说明:
Shell/语句:以.结束,不是其它语言一般的;结束
module/function:用任何文本编辑器编辑,如:(文件保存名tut.erl)
-module(tut).
-export([double/1]).
-export([fac/1, mult/2]).         %1表示1个参数,2表示2个参数

double(X) ->
    2 * X.

fac(1) ->
    1;                     %;表示该方法未结束,或者说只结束一部分
fac(N) ->
    N * fac(N - 1).

mult(X, Y) ->
    X * Y.

在文件保存的目录运行erlang,编译:c(module_name),上例就是c(tut)。返回{ok,module_name}表示成功。然后就可以直接调用module中的function。上例:tut:double(10).
Atoms:普通变量以大写字母开头,原子以小写字母开头。原子只是一个名称,没有任何值。作用之一就是作为function的简称或者说组成部分。hello(X, china) ,调用应该是module_name:hello(x, china).
如果执行出现错误,可以用function v/1. 例如v(9).其中9表示出错的shell的number。
Tuples:以{}区分。和其它语言的array一样。尤其是php和perl的。几乎一样。例如:{moscow, {c, -10}}  element 1 就是moscow, element 2 就是{c, -10}
Lists: [] 例如:[{moscow, {c, -10}}, {cape_town, {f, 70}},{stockholm,{c, -4}},{paris, {f, 28}}, {london, {f, 36}}]
list可以用"|"来分割。例如:[First |TheRest] = [1,2,3,4,5].那么First就是1, TheRest就是[2,3,4,5]
[E1, E2 | R] = [1,2,3,4,5,6,7].  E1是1, E2是2, R就是剩下的全部了
String:erlang中没有string,用list来代替,list内容是字符的ascii.例如:list[97,98,99]表示"abc"。 所以在Shell中输入[97,98,99].  得到"abc"
StandardModules:
io:
31>io:format("hello world~n", []).
hello world
ok
32> io:format("this outputs one Erlang term: ~w~n", [hello]).
this outputs one Erlang term: hello
ok
33> io:format("this outputs two Erlang terms: ~w~w~n", [hello, world]).
this outputs two Erlang terms: helloworld
ok
34> io:format("this outputs two Erlang terms: ~w ~w~n", [hello, world]).
this outputs two Erlang terms: hello world
ok

guard:看例子(得到List里面最大数):
-module(tut).
-export([list_max/1]).
list_max([Head|Rest]) ->
   list_max(Rest, Head).
list_max([], Res) ->
    Res;
list_max([Head|Rest], Result_so_far) when Head > Result_so_far ->   % when是一个关键字,说明当条件成立时走这个方法。 这种带有条件的称为guard
    list_max(Rest, Head);           
list_max([Head|Rest], Result_so_far)  ->
    list_max(Rest, Result_so_far).

guard的操作符:< less than, > greater than, == equal, >= greater or equal, =< less or equal, /= not equal

Scope中的变量:同一个Scope中的变量是不可变的,这个其它一些语言(clojure等)类似。
赋值:老规矩,=号。例如:
M = 5.
{X, Y} = {paris, {f, 28}}.
分享到:
评论

相关推荐

    Erlang初级入门(英文pdf)

    ### Erlang基础知识与特性 #### 一、Erlang简介 Erlang是一种专为处理大规模并发活动设计的编程语言,由瑞典电信设备制造商爱立信的计算机科学实验室(Computer Science Laboratory, CSLab)开发。该语言的目标是...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建高可用性、容错性和并发性的分布式系统。"Introducing Erlang"是Simon St. Laurent撰写的一本入门级教程,...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、分布式和实时系统。版本24.3.4.4是Erlang的一个更新版本,包含了对先前版本的改进和修复。Erlang以其强大的错误...

    erlang趣学指南

    Erlang是一门专为构建并发、容错的分布式系统而设计的编程语言,最早由瑞典电信设备公司爱立信所开发。其关键特性包括轻量级进程、消息传递、容错机制以及一个用于构建可靠系统的函数库和中间件,统称为Open Telecom...

    erlang25.0 windows版本

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时系统。它由Ericsson公司开发,主要用于构建高可用性、容错性和可扩展性的软实时系统。Erlang的25.0版本是该语言的一个更新,针对Windows操作系统进行了优化...

    erlang资源

    这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入理解和学习Erlang语言的关键资料。 《Erlang并发编程》这本书可能涵盖了以下知识点: 1. **并发模型**:Erlang的并发...

    Erlang/OTP 26.2.1

    Erlang/OTP 26.2.1,Erlang,OTP,26.2.1

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    ErlangB和ErlangC计算工具(exe可执行文件+excel两个)

    Erlang B和Erlang C是电信领域中两种重要的流量模型,用于预测和分析通信系统中的呼叫处理能力和拥塞情况。这两个模型由丹麦工程师Agner Krarup Erlang在20世纪初提出,至今仍广泛应用于现代通信网络的设计与优化。 ...

    Erlang官网下载过慢

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性和处理大量并发连接的能力而被广泛应用于电信、互联网基础设施和实时系统。RabbitMQ...

    Erlang23_3.zip

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson于1986年开发,主要用于构建高可用性、分布式系统。Erlang的设计目标是支持大量并发连接,容错性强,易于编写实时系统。Erlang采用actor模型...

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

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

    Erlang 20.3linux安装包

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...

    xiandiao_erlang_Erlang课后习题_

    【Erlang编程语言及其应用】 Erlang是一种并发式、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,最初用于构建高可用性、容错性和可扩展性的分布式系统。"xiandiao_erlang_Erlang课后习题_"这个压缩包文件...

    erlang9.rar

    Erlang是一种高级编程语言,特别适用于并发、分布式和实时计算系统。它的设计目标是创建一个高可用性、容错性强、低延迟的系统。Erlang9指的是Erlang/OTP(Open Telephony Platform)的第9个主要版本。OTP是Erlang...

    erlang23.2版windows64位.zip

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。Erlang因其在处理大量并发连接和容错能力上的优秀表现,广泛应用于电信、银行、互联网服务等领域...

    erlang安装包.zip

    erlang安装包

    Erlang B公式计算器

    Erlang B公式是通信网络领域中用于计算呼叫阻塞概率的重要工具,它在电路交换系统,特别是电话交换网络的设计中发挥着关键作用。这个压缩包包含了一个基于Erlang B公式的计算器程序,以及其源代码和实验报告,旨在...

    erlang otp25 win安装包

    erlang otp25 win安装包

    windows下安装Erlang环境

    Erlang是一种强大的编程语言,特别适合于构建高并发、分布式和容错性强的系统。由爱立信的CS-Lab开发,Erlang的设计目标是处理大规模并发活动,这在传统的操作系统上可能非常困难。它的核心特性使其在处理并发性、...

Global site tag (gtag.js) - Google Analytics