在匿名 class 中表示柯里化的方式(从 lambda 表达式转换)。嵌套函数
Way to represent currying in anonymous class (conversion from lambda expression). Nested functions
您好,我只是想检查一下我的实现和理解是否正确。我试图将一种嵌套的 lambda 转换为匿名 class
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = x -> y -> z-> x + y + z
这是将其表示为匿名的合适方式吗class?
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = new Function <> (
int x, y;
@Override
Function<Integer,Function<Integer,Integer>> apply ( Integer x)
return y-> z-> (x+y+z);
}
};
为了将 lambda 转化为匿名函数,你应该一点一点地分解它,每个 ->
对应一个匿名函数实例化,这最终会是这样的:
var h = new Function<Integer,Function<Integer,Function<Integer,Integer>>>() {
public Function<Integer,Function<Integer,Integer>> apply(Integer x) {
return new Function<Integer,Function<Integer,Integer>>() {
public Function<Integer,Integer> apply(Integer y) {
return new Function<Integer,Integer>() {
public Integer apply(Integer z) {
return x + y + z;
}
};
}
};
}
};
您好,我只是想检查一下我的实现和理解是否正确。我试图将一种嵌套的 lambda 转换为匿名 class
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = x -> y -> z-> x + y + z
这是将其表示为匿名的合适方式吗class?
Function<Integer,Function<Integer,Function<Integer,Integer>>> h = new Function <> (
int x, y;
@Override
Function<Integer,Function<Integer,Integer>> apply ( Integer x)
return y-> z-> (x+y+z);
}
};
为了将 lambda 转化为匿名函数,你应该一点一点地分解它,每个 ->
对应一个匿名函数实例化,这最终会是这样的:
var h = new Function<Integer,Function<Integer,Function<Integer,Integer>>>() {
public Function<Integer,Function<Integer,Integer>> apply(Integer x) {
return new Function<Integer,Function<Integer,Integer>>() {
public Function<Integer,Integer> apply(Integer y) {
return new Function<Integer,Integer>() {
public Integer apply(Integer z) {
return x + y + z;
}
};
}
};
}
};