fun-函数的数据类型小结

1.匿名fun函数

a.匿名函数与变量绑定 

    我们一般看到的是将一个匿名的函数赋值给一个变量:相当于这个变量就是以后的函数名。

    后面就将这个变量当作函数名用即可。例如:

Double=fun(X)->2*x end.
Double(2). 结果为1.

b.匿名fun函数作为函数参数

L=[1,2,3,4].
list:map(fun(X)->2*X end,L).

总之,要匿名函数发挥作用,就必须与变量绑定,或者作为参数被传给其他函数,还有就是一定不要忘了匿名函数的函数体有个end作为其结尾。

2.函数别名的fun函数

a.本模块应用

如果要应用本模块内部的已经定义的某个函数,直接将之传递给其他函数当做参数,用如下形式

make(Name)->
           register(Name,spawn(fun()->my_handler(fun no_op/1) end)).
no_op(_)->void.

my_handler(Fun)->
    receive
        {event,Any}->
            catch Fun(Any)
    end.

在my_handler()函数参数的fun no_op/1就相当是no_op(_)函数的函数别名。当赋值给一个变量以后可以用这个别名像调用任意普通函数一样的来调用这个函数。

注:本地别名fun函数与匿名fun函数在实现上很类似,它们都依赖于模块的当前版本。

b.其他模块应用

  1 -module(test).
  2 
  3 -export([test/1]).
  4 
  5 test(X) when X > 2 -> true;
  6 
  7 test(X) -> false.

如果在shell中应用:

135433_ULVe_1540325.png

注:在被调用时,它们不依赖于特定的版本。反而是总是指向引用函数的最新版本。





























转载于:https://my.oschina.net/u/1540325/blog/363467

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值