这个高阶函数是否正确?

时间:2015-01-06 04:45:10

标签: erlang

作为学习Erlang的一部分,我试图解决的问题之一是

  

写一个高阶函数滤波器(F,L),它返回所有的   L中的元素X,其中F(X)为真。

我是函数式编程的新手,也很高兴与高阶函数混淆。

我的尝试看起来像

filter(F, L)  -> [T || T <- L, F(T) =:= true].

2> IsEven = fun(X) -> X rem 2 =:= 0 end.
#Fun<erl_eval.6.90072148>
3> IsEven(2).
true
4> IsEven(3).
false
5> math_functions:filter(IsEven, lists:seq(1, 10)).
[2,4,6,8,10]
6> math_functions:filter(IsEven, lists:seq(1, 20)).
[2,4,6,8,10,12,14,16,18,20]

问题
这是真正的高阶函数吗?请指导

0 个答案:

没有答案