Fun定义

本文详细介绍了Erlang中Fun表达式的定义与使用方式,包括匿名函数的多种定义形式及其调用方法,并提供了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Fun定义


fun
(Pattern1, ..., PatternN) [when GuardSeq1] ->
Body1;
....
(PatternK1, ..., PatternKN) [when GuardSeqK] ->
BodyK
end


也可以依据已经定义的函数定义声明fun

fun Name/Arity
fun Module:Name/Arity


对于第一种形式没有指定Module,其会隐式的判断对应的Module,可能是import的Module,也可能是当前Module。(注意:推荐不要使用import,容易混淆,同时使用Module:Name/Arity可以保证加载的代码总是最新版本的代码)

其实以上只是一个语法糖,等同于下面的形式:

fun(Arg1, Arg2, ...) -> Module:Name/Arity(Arg1, Arg2, ...) end


对于fun调用可以采用多种形式,比如我们要将L2 [3, 4]追加到L1 [1, 2]:

[list=1]
1, Fun1 = fun(L1, L2) -> lists:append(L1, L2) end, Fun1([1, 2], [3, 4]).
2, fun(L1, L2) -> lists:append(L1, L2)([1, 2], [3, 4]).
3, Fun2 = {lists, append}, Fun2([1, 2], [3, 4]).(不推荐使用)
4, fun lists:append/2([1, 2], [3, 4])
[/list]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值