📅  最后修改于: 2023-12-03 14:41:00.029000             🧑  作者: Mango
Erlang 是一种并发、函数式编程语言,它被广泛用于构建可扩展、高可靠性和分布式的软实时系统。Erlang 函数是 Erlang 程序的基本构建块,它们用于实现具体的功能和任务。
在 Erlang 中,函数定义遵循以下形式:
函数名(参数1, 参数2, ...) ->
表达式1;
表达式2;
...
表达式n.
函数名
是函数的标识符,用于调用该函数。(参数1, 参数2, ...)
是传递给函数的参数列表。Erlang 函数可以具有零到多个参数。表达式1; 表达式2; ... 表达式n.
是函数体中的一系列表达式,用分号 (;
) 分隔。函数体中最后一个表达式的结果将作为函数返回值。以下是一个简单的 Erlang 函数示例:
hello_world() ->
io:format("Hello, World!").
使用函数需要调用它们。在 Erlang 中,调用函数的语法为 模块名:函数名(参数1, 参数2, ...)
。
以下是调用上述示例函数的代码:
module_name:hello_world().
Erlang 函数非常适合递归。递归函数是指在函数体中调用自身的函数。Erlang 支持尾递归优化,这意味着递归调用的结果不会被放入函数的调用栈中。
以下是一个使用递归实现阶乘的 Erlang 函数示例:
factorial(0) ->
1;
factorial(N) when N > 0 ->
N * factorial(N - 1).
调用上述函数计算阶乘的代码如下所示:
module_name:factorial(5).
除了常规函数,Erlang 还支持匿名函数。匿名函数可以在表达式中被定义和传递,它们在许多场景下非常有用。
以下是匿名函数的基本语法:
Fun = fun (参数1, 参数2, ...) ->
表达式1;
表达式2;
...
表达式n
end.
以下是一个匿名函数示例,用于获取列表的所有奇数元素:
OddElements = fun (List) ->
lists:filter(fun (X) -> X rem 2 =:= 1 end, List)
end.
调用上述匿名函数获取列表 [1, 2, 3, 4, 5]
的所有奇数元素的代码如下所示:
OddElements([1, 2, 3, 4, 5]).
Erlang 函数是构建可靠且并发的软实时系统的关键。它们可以定义、调用和递归,并且匿名函数提供了更大的灵活性。在使用 Erlang 进行程序开发时,熟悉函数的概念和使用是至关重要的。