当前位置: 首页 > 编程笔记 >

Erlang功能

裴实
2023-03-14
本文向大家介绍Erlang功能,包括了Erlang功能的使用技巧和注意事项,需要的朋友参考一下

示例

功能是一组指令,它们被组合在一起。这些分组的指令一起执行某些任务。在erlang中,所有函数在调用时都会返回一个值。

下面是一个将两个数字相加的函数的示例

add(X, Y)-> X + Y.

此函数对X和Y值执行加法运算并返回结果。功能可以如下使用

add(2,5).

函数声明可以包含多个由分号分隔的子句。这些子句中的每个参数都是通过模式匹配来评估的。如果参数是以下形式的元组,则以下函数将返回“元组”:{test,X},其中X可以是任何值。如果参数是格式为[“ test”,X]的长度为2的列表,它将返回'list',并且在任何其他情况下,它将返回'{error,“ Reason”}'':

function({test, X}) -> tuple;
function(["test", X]) -> list;
function(_) -> {error, "Reason"}.

如果参数不是元组,则将计算第二个子句。如果参数不是列表,则将评估第三子句。

函数声明可以包含所谓的“ Guards”或“ Guard Sequences”。这些Guard是限制函数求值的表达式。仅当所有Guard表达式均产生真值时,才执行带有Guards的函数。多个卫兵可以用分号分隔。

function_name(Argument) when Guard1; Guard2; ... GuardN -> (...).

仅当保护序列为true时,才对函数'function_name'求值。仅当参数X在适当范围内(0..15)时,follwing函数才会返回true :

in_range(X) when X>=0; X<16 -> true;
in_range(_) -> false.
           

 类似资料:
  • Erlang shell 被用于表达式的测试。因此,测试可以在 shell 进行,这是在实际的应用程序运行之前进行测试。 下面的例子展示了如何在 shell 中添加表达式并使用。这里需要指出的是,表达需要使用(.)定界符来作为结束符。 执行该命令后,shell 打印出另一个提示,此时为命令编号为2(因为指令数在每次输入新命令后增加)。 以下函数在 Erlang Shell 最常见的。 b() − 

  • Erlang 版本的 socket.io 服务器实现

  • maestro 是 Erlang 池管理程序。 为什么? 短暂 I/O 任务(比如数据库访问)的大型 worker 池会因为太多迁入和迁出活动而拖垮单个 poolboy 管理器。 怎样做? 使用简单的方法,启动多个池;随机迁出。maestro 需要了解每个池的工作流,当每个池都是同一类型的加载模式时,将会提升复杂性,降低性能,没有什么明显的优势。 使用: MaestroName = many_po

  • 随着Erlang和FP的普及,总有人想把Erlang用在Web开发上。 虽然这不一定是个靠谱的想法,但是,还是看上去很美的想法。 Nitrogen 就是其中一个实现。它主要关注在快速开发交互密集型的Web,喜欢Erlang的童鞋可以看一下。

  • Erlang SPDY 是 Erlang 实现对 SPDY 协议的支持。

  • 主要内容:实用方法递归,重复(复本),列表反转递归是 Erlang 的重要组成部分。首先,让我们通过实现阶乘程序来了解简单的递归。 示例 对于上面的例子,有以下几点需要注意 - 我们首先定义一个函数 fac(N); 我们可以通过定义递归函数 fac(N) 递归; 上面的代码的输出结果是 - 实用方法递归 在本节中,我们将详细了解不同类型的递归及其在 Erlang 中的使用。 长度递归 以递归一个更有效的方法可以用于确定一个列表的长度,现在来看