当前位置:K88软件开发文章中心编程语言非主流编程语言Erlang → 文章列表
文章标题关闭所有内容预览 | 展开所有内容预览
  • Erlang 宏 [内容预览] 0 | 2019-01-15 16:23:56
    由Loen创建,路飞最后一次修改2016-08-12Erlang宏在messager系统添加的另外一种东西是宏。在mess_config.hrl文件中包含如下的定义:%%%Configurethelocationoftheservernode,-define(server_node,messenger@super).这...

    [阅读全文]

  • Erlang 记录 [内容预览] 0 | 2019-01-15 16:23:55
    由Loen创建,路飞最后一次修改2016-08-12Erlang记录记录的定义如下:-record(name_of_record,{field_name1,field_name2,field_name3,......}).例如,-record(message_to,{to_name,message}).这等价于:{me...

    [阅读全文]

  • Erlang 头文件 [内容预览] 0 | 2019-01-15 16:23:54
    由Loen创建,路飞最后一次修改2016-08-12Erlang头文件如上所示,某些文件的扩展名为.hrl。这些是在.erl文件中会用到的头文件,使用方法如下:-include("File_Name").例如:-include("mess_interface.hrl").在本例中,上面所有的文件与messager系统的...

    [阅读全文]

  • Erlang 将大程序分在多个文件中 [内容预览] 0 | 2019-01-15 16:23:52
    由Loen创建,路飞最后一次修改2016-08-12将大程序分在多个文件中为了演示需要,我们将前面几节中messager程序分布到五个文件中:mess_config.hrl配置所需数据头文件mess_interface.hrl客户端与messager之间的接口定义user_interface.erl用户接口函数mess...

    [阅读全文]

  • Erlang 记录与宏 [内容预览] 0 | 2019-01-15 16:23:51
    由Loen创建,路飞最后一次修改2016-08-12

    [阅读全文]

  • Erlang 增加健壮性后的完整示例 [内容预览] 0 | 2019-01-15 16:23:50
    由Loen创建,路飞最后一次修改2016-08-12增加健壮性后的完整示例让我们改进Messager程序以增加该程序的健壮性:%%%Messagepassingutility.%%%Userinterface:%%%login(Name)%%%OneuseratatimecanloginfromeachErlangno...

    [阅读全文]

  • Erlang 错误处理 [内容预览] 0 | 2019-01-15 16:23:49
    由Loen创建,路飞最后一次修改2016-08-12Erlang错误处理在讨论监督与错误处理细节之前,让我们先一起来看一下Erlang进程的终止过程,或者说Erlang的术语exit。进程执行exit(normal)结束或者运行完所有的代码而结束都被认为是进程的正常(normal)终止。进程因为触发运行时错误(例如,除...

    [阅读全文]

  • Erlang 超时处理 [内容预览] 0 | 2019-01-15 16:23:48
    由Loen创建,路飞最后一次修改2016-08-12Erlang超时处理在改进messager程序之前,让我们一起学习一些基本的原则。回忆一下,当“ping”结束的时候,它向“pong”发送一个原子值finished的消息以通知“pong”结束程序。另一种让“pong”结束的办法是当“pong”有一定时间没有收到来自“...

    [阅读全文]

  • Erlang 健壮性 [内容预览] 0 | 2019-01-15 16:23:47
    由Loen创建,路飞最后一次修改2016-08-12Erlang的健壮性上一节中的完整示例还存在一些问题。当用户所登录的结点崩溃时,用户没有从系统中登出,因此该用户仍然在服务器的User_List中,但事实是用户已经不在系统中了。这会导致这用户不能再次登录,因为系统认为它已经在系统中了。或者,如果服务器发送消息出现故障...

    [阅读全文]

  • Erlang 分布式编程 [内容预览] 0 | 2019-01-15 16:23:45
    由Loen创建,路飞最后一次修改2016-08-12Erlang分布式编程下面我们进一步对pingpong示例程序进行改进。这一次,我们要让“ping”、“pong”进程分别位于不同的计算机上。要想让这个程序工作,你首先的搭建一下分布式的系统环境。分布式Erlang系统的实现提供了基本的安全机制,它阻止未授权的外部设备...

    [阅读全文]

  • Erlang 注册进程名称 [内容预览] 0 | 2019-01-15 16:23:43
    由Loen创建,路飞最后一次修改2016-08-12Erlang注册进程名称上面的例子中,因为“Pong”在“ping”进程开始前已经创建完成,所以才能将“pong”进程的进程标识符作为参数传递给进程“ping”。这也就说,“ping”进程必须通过某种途径获得“pong”进程的进程标识符后才能将消息发送“pong”进程...

    [阅读全文]

  • Erlang 消息传递 [内容预览] 0 | 2019-01-15 16:23:42
    由Loen创建,路飞最后一次修改2016-08-12Erlang消息传递下面的例子中创建了两个进程,它们相互之间会发送多个消息。-module(tut15).-export([start/0,ping/2,pong/0]).ping(0,Pong_PID)->Pong_PID!finished,io:format("p...

    [阅读全文]

  • Erlang 进程 [内容预览] 0 | 2019-01-15 16:23:41
    由Loen创建,路飞最后一次修改2016-08-12Erlang进程管理相比于其它函数式编程语言,Erlang的优势在于它的并发程序设计与分布式程序设计。并发是指一个程序中同时有多个线程在执行。例如,现代操作系统允许你同时使用文字处理、电子制表软件、邮件终端和打印任务。在任意一个时刻,系统中每个处理单元(CPU)都只有...

    [阅读全文]

  • Erlang 并发编程 [内容预览] 0 | 2019-01-15 16:23:40
    由Loen创建,路飞最后一次修改2016-08-12

    [阅读全文]

  • Erlang 高阶函数 (Fun) [内容预览] 0 | 2019-01-15 16:23:39
    由Loen创建,路飞最后一次修改2016-08-12Erlang高阶函数(Fun)Erlang作为函数式编程语言自然拥有高阶函数。在shell中,我们可以这样使用:86>Xf=fun(X)->X*2end.#Fun<erl_eval.5.123085357>87>Xf(5).10这里定义了一个数值翻倍的函数,并将这个函...

    [阅读全文]

  • Erlang 内置函数 (BIF) [内容预览] 0 | 2019-01-15 16:23:38
    由Loen创建,路飞最后一次修改2016-08-12Erlang内置函数(BIF)内置函数是指那些出于某种需求而内置到Erlang虚拟机中的函数。内置函数常常实现那些在Erlang中不容易实现或者在Erlang中实现效率不高的函数。某些内置函数也可以只用函数名就调用,因为这些函数是由于默认属于erlang模块。例如,下...

    [阅读全文]

  • Erlang if 与 case [内容预览] 0 | 2019-01-15 16:23:37
    由Loen创建,路飞最后一次修改2016-08-12Erlangif与case上面的find_max_and_min函数可以找到温度的最大值与最小值。这儿介绍一个新的结构if。If的语法格式如下:ifCondition1->Action1;Condition2->Action2;Condition3->Action3;...

    [阅读全文]

  • Erlang 列表的操作 [内容预览] 0 | 2019-01-15 16:23:36
    由Loen创建,路飞最后一次修改2016-08-12Erlang更多关于列表的内容|操作符可以用于取列表中的首元素:47>[M1|T1]=[paris,london,rome].[paris,london,rome]48>M1.paris49>T1.[london,rome]同时,|操作符也可以用于在列表首部添加元素:...

    [阅读全文]

  • Erlang 匹配、Guards 与变量的作用域 [内容预览] 0 | 2019-01-15 16:23:34
    由Loen创建,路飞最后一次修改2016-08-12Erlang匹配、Guards与变量的作用域在某些场景下,我们可能需要找到最高温度或最低温度。所以查找温度值列表中最大值或最小值是非常有用的。在扩展程序实现该功能之前,让我们先看一下寻找列表中的最大值的方法:-module(tut6).-export([list_ma...

    [阅读全文]

  • Erlang 完整示例 [内容预览] 0 | 2019-01-15 16:23:33
    由Loen创建,路飞最后一次修改2016-08-12Erlang完整示例接下来,我们会用一个更加完整的例子来巩固前面学到的内容。假设你有一个世界上各个城市的温度值的列表。其中,一部分是以摄氏度表示,另一部分是华氏温度表示的。首先,我们将所有的温度都转换为用摄氏度表示,再将温度数据输出。%%Thismoduleisinf...

    [阅读全文]

  • Erlang 输出至终端 [内容预览] 0 | 2019-01-15 16:23:32
    由Loen创建,路飞最后一次修改2016-08-12Erlang输出至终端用例子来说明如何格式化输出到终端再好不过了,因此下面就用一个简单的示例程序来说明如何使用io:format函数。与其它导出的函数一样,你可以在shell中测试io:format函数:31>io:format("helloworld~n",[])....

    [阅读全文]

  • Erlang 标准模块与使用手册 [内容预览] 0 | 2019-01-15 16:23:31
    由Loen创建,路飞最后一次修改2016-08-12Erlang标准模块与使用手册Erlang有大量的标准模块可供使用。例如,IO模块中包含大量处理格式化输入与输出的函数。如果你需要查看标准模块的详细信息,可以在操作系统的shell或者命令行(即开始erl的地方)使用erl-man命令来查看。示例如下:%erl-man...

    [阅读全文]

  • Erlang 映射 (Map) [内容预览] 0 | 2019-01-15 16:23:30
    由Loen创建,路飞最后一次修改2016-08-12Erlang映射(Map)映射用于表示键和值的关联关系。这种关联方式是由“#{”与“}”括起来。创建一个字符串"key"到值42的映射的方法如下:1>#{"key"=>42}.#{"key"=>42}让我们直接通过示例来看一些有意思的特性。下面的例子展示了使用映射来关...

    [阅读全文]

  • Erlang 列表 [内容预览] 0 | 2019-01-15 16:23:29
    由Loen创建,路飞最后一次修改2016-08-12Erlang列表虽然元组可以将数据组成一组,但是我们也需要表示数据列表。Erlang中的列表由方括号括起来表示。例如,世界上不同城市的温度列表就可以表示为:[{moscow,{c,-10}},{cape_town,{f,70}},{stockholm,{c,-4}},...

    [阅读全文]

  • Erlang 原子类型 [内容预览] 0 | 2019-01-15 16:23:28
    由Loen创建,路飞最后一次修改2016-08-12原子类型原子类型是Erlang语言中另一种数据类型。所有原子类型都以小写字母开头(参见原子类型)。例如,charles,centimeter,inch等。原子类型就是名字而已,没有其它含义。它们与变量不同,变量拥有值,而原子类型没有。将下面的这段程序输入到文件tut2...

    [阅读全文]

  • Erlang 模块与函数 [内容预览] 0 | 2019-01-15 16:23:27
    由Loen创建,路飞最后一次修改2016-08-12模块与函数如果一种编程语言只能通过shell来运行代码,那么这种语言基本上没什么太大的用处,Erlang同样可以通过脚本来运行程序。这里有一小段Erlang程序。使用合适的文本编辑器将其输入到文件tut.erl中。文件名称必须为tut.erl不能任意修改,并且需要将其...

    [阅读全文]

  • Erlang Shell [内容预览] 0 | 2019-01-15 16:23:25
    由Loen创建,最后一次修改2016-08-12ErlangShell绝大多数操作系统都有命令解释器或者外壳(shell),Unix与Linux系统中有很多不同的shell,windows系统上也有命令行提示。Erlang自己的shell中可以直接编写Erlang代码,并被执行输出执行后的效果(可以参考STDLIB中s...

    [阅读全文]

  • Erlang 顺序编程 [内容预览] 0 | 2019-01-15 16:23:24
    由Loen创建,路飞最后一次修改2016-08-12

    [阅读全文]

 Erlang   28   30   1/1页   首页   1   尾页   GO