Fun用于在Erlang中定义匿名函数,匿名函数的一般语法如下:
F=fun (Arg1, Arg2, ... ArgN) -> ... End
F - 这是分配给匿名函数的变量名。
Arg1,Arg2,... ArgN - 这些是传递给匿名函数的参数。
以下示例展示了如何使用匿名函数。
-module(helloLearnfk). -export([start/0]). start() -> A=fun() -> io:fwrite("Hello") end, A().
当我们运行上面的程序时,我们将得到以下输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/erlang/erlang-funs.html
来源:LearnFk无涯教程网
“Hello”
匿名函数的另一个如下,但这是使用参数的情况。
-module(helloLearnfk). -export([start/0]). start() -> A=fun(X) -> io:fwrite("~p~n",[X]) end, A(5).
当我们运行上面的程序时,我们将得到以下输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/erlang/erlang-funs.html
来源:LearnFk无涯教程网
5
匿名函数具有访问匿名函数范围之外的变量的能力,让我们看一个示例-
-module(helloLearnfk). -export([start/0]). start() -> B=6, A=fun(X) -> io:fwrite("~p~n",[X]), io:fwrite("~p~n",[B]) end, A(5).
当我们运行上面的程序时,我们将得到以下输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/erlang/erlang-funs.html
来源:LearnFk无涯教程网
5 6
高阶函数的另一个最强大的方面之一是,您可以在函数中定义一个函数。让我们来看一个如何实现此目标的示例。
-module(helloLearnfk). -export([start/0]). start() -> Adder=fun(X) -> fun(Y) -> io:fwrite("~p~n",[X + Y]) end end, A=Adder(6), A(10).
当我们运行上面的程序时,我们将得到以下输出。
链接:https://www.learnfk.comhttps://www.learnfk.com/erlang/erlang-funs.html
来源:LearnFk无涯教程网
16
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)