fun函数就是一个匿名函数(因为他自己没有名字),但就这个匿名函数,用处却是很大的。fun既可以作为函数的参数,也可以作为函数(或者自己本身fun)的返回结果。
现在,我们再来看一下fun函数的简单使用:
|
#Fun<erl_eval...>
之类的东西,我自己也不清楚,不过先不要管这个。我们继续往下看。Triple = fun(X) -> 3*X end.
是定义一个fun,只有一个参数量,也就是只有一个目,在fun结束的时候,需要将end加在后面的。当我们要调用它的时候,直接使用Triple,然后加上参数就行了。
注:本博客的例子可能许多都是来自Joe Armstrong的《Erlang程序设计》一书,或者在原来基础上稍加改变。
我们再来详细的学习这个fun:
1.用fun作为函数的参数
上面的例子是只有一个参数,相信大家都能看懂。现在看一下使用多个参数时的情景。
|
fun也可以有若干个不同的子句。
比如下面的星期转换:
|
lists是标准库中的一个模块,从中导出的很多函数都是以fun作为参数的函数,比如,map,filter等。下面是一个测试:
|
3.