java吧 关注:1,295,043贴子:12,828,255
  • 1回复贴,共1

写了个用lambda表达式实现递归的类。

取消只看楼主收藏回复

class Fix<T,R>{
<T,R> Function<T,R> recus(Function<Function<T, R>, Function<T, R>> f){
Objects.requireNonNull(f);
return (T x)->f.apply(this.recus(f)).apply(x);
}
}
public class LamdaDemo{
public static void main(String[] args){
Function<Integer, Integer> fun = new Fix<>()
.recus(f->x->x<=1?1:x*f.apply(x-1));
System.out.println(fun.apply(5));

//打印结果为 5*4*3*2*1 =120


IP属地:湖北1楼2014-05-21 21:28回复
    不写注释不行啊。。
    1.8的需要用到 java.util.function的包。
    是为了方便 lambda 表达式而添加的一系列辅助函数。
    这么快沉了,坑爹。


    IP属地:湖北2楼2014-05-21 21:44
    回复