首页 > 其他分享 >无涯教程-Erlang - 函数

无涯教程-Erlang - 函数

时间:2023-12-03 18:31:36浏览次数:40  
标签:教程 end 函数 fwrite 无涯 start 匿名 fun Erlang

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().

当我们运行上面的程序时,我们将得到以下输出。

“Hello”

匿名函数的另一个如下,但这是使用参数的情况。

-module(helloLearnfk). 
-export([start/0]). 

start() -> 
   A=fun(X) -> 
      io:fwrite("~p~n",[X]) 
      end, 
   A(5).

当我们运行上面的程序时,我们将得到以下输出。

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).

当我们运行上面的程序时,我们将得到以下输出。

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).

当我们运行上面的程序时,我们将得到以下输出。

16

参考链接

https://www.learnfk.com/erlang/erlang-funs.html

标签:教程,end,函数,fwrite,无涯,start,匿名,fun,Erlang
From: https://blog.51cto.com/u_14033984/8668833

相关文章

  • 无涯教程-Erlang - 预处理
    在编译Erlang模块之前,它会由Erlang预处理程序自动处理,预处理器会扩展源文件中可能存在的所有宏,并插入任何必要的包含文件。通常,您不需要查看预处理器的输出,但是在特殊情况下(如,调试错误的宏时),您可能希望保存预处理器的输出,要查看模块some_module.erl的预处理输出,请提供OSShe......
  • 无涯教程-Erlang - 异常处理
    任何编程语言都需要异常处理来处理运行时错误,以便可以维护应用程序的正常流程。通常,当Erlang中发生异常或错误时,将显示以下消息。{"initterminatingindo_boot",{undef,[{helloLearnfk,start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}]}}故障转储将被写入-erl_......
  • 初中生就能看懂的Python教程 - 1. hello world、print与对象类型
    上一篇教程我们讲了如何安装Python。可以开始编程了。这一篇文章讲解有关print与变量的内容。不过我没讲怎么使用IDLE。在这里补充一下。PythonIDLE的使用下载完Python之后我们应该可以在开始菜单找到一个程序叫做IDLE,这也是新手最常用的Python编辑器,Python自带的。打开IDLE......
  • 无涯教程-Erlang - Records(记录)
    Erlang具有创建records记录函数,这些records记录由字段组成,例如,您可以定义一个personal records,其中包含2个字段,一个是id,另一个是name字段。然后,您可以在Erlang中创建此records记录的各种实例,以定义具有不同名称和ID的多个personal。创建记录使用record标识符创建,在此record......
  • 无涯教程-Erlang - Maps(映射)
    Maps中的每个键-值(key-value)关联称为关联对,该对中的键和值部分称为元素,关联对的数量被称为Map的大小。我们定义了具有2个Maps的MapM1,map_size是用Erlang定义的内置函数,可用于查看Map的大小。-module(helloLearnfk).-export([start/0]).start()->M1=#{name=>john......
  • 无涯教程-Erlang - 文件I/O
    使用I/O时,Erlang提供了许多方法。它具有更简单的类,可为文件提供以下函数-读取文件写入文件查看文件是文件还是目录让我们探讨一下Erlang提供的一些文件操作,出于这些示例的目的,我们将假设有一个名为NewFile.txt的文件,其中包含以下文本行Example1Example2Example3在以下......
  • 无涯教程-Erlang - Strings(字符串)
    通过将字符串括在引号中,可以在Erlang中构造一个字符串文字,需要使用双引号(如"HelloLearnfk")构造Erlang中的字符串。-module(helloLearnfk).-export([start/0]).start()->Str1="Thisisastring",io:fwrite("~p~n",[Str1]).上面程序的输出将是-“Thisisa......
  • Windows 下安装和配置 Redis (图文教程)
    ......
  • 无涯教程-Erlang - Lists(列表)
    列表是用于存储数据项集合的结构,在Erlang中,列表是通过将值括在方括号中来创建的。-module(helloLearnfk).-export([start/0]).start()->Lst1=[1,2,3],io:fwrite("~w~n",[Lst1]).上面示例的输出将是-[123]现在让我们讨论可用于列表的各种方法。Sr.No方法......
  • 无涯教程-Erlang - Numbers(数字)
    在Erlang中,有两种数字类型:整数(integers)和浮点数(floats)。整数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~w",[1+1]).上面程序的输出如下:2浮点数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~......