Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
34
Task/Currying/Java/currying-2.java
Normal file
34
Task/Currying/Java/currying-2.java
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import java.util.function.BiFunction;
|
||||
import java.util.function.Function;
|
||||
|
||||
public class Curry {
|
||||
|
||||
//Curry a method
|
||||
public static <T, U, R> Function<T, Function<U, R>> curry(BiFunction<T, U, R> biFunction) {
|
||||
return t -> u -> biFunction.apply(t, u);
|
||||
}
|
||||
|
||||
public static int add(int x, int y) {
|
||||
return x + y;
|
||||
}
|
||||
|
||||
public static void curryMethod() {
|
||||
BiFunction<Integer, Integer, Integer> bif = Curry::add;
|
||||
Function<Integer, Function<Integer, Integer>> add = curry(bif);
|
||||
Function<Integer, Integer> add5 = add.apply(5);
|
||||
System.out.println(add5.apply(2));
|
||||
}
|
||||
|
||||
//Or declare the curried function in one line
|
||||
public static void curryDirectly() {
|
||||
Function<Integer, Function<Integer, Integer>> add = x -> y -> x + y;
|
||||
Function<Integer, Integer> add5 = add.apply(5);
|
||||
System.out.println(add5.apply(2));
|
||||
}
|
||||
|
||||
//prints 7 and 7
|
||||
public static void main(String[] args) {
|
||||
curryMethod();
|
||||
curryDirectly();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue