Skip to content

Commit 4611c35

Browse files
committed
Implement filter, fold, bind for java.util.List
1 parent 8eb43ce commit 4611c35

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

java-core/src/main/java/fj/java/util/ListUtil.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package fj.java.util;
22

33
import fj.F;
4+
import fj.F2;
5+
46
import java.util.List;
57

68
/**
@@ -11,4 +13,21 @@ public class ListUtil {
1113
public static <A, B> List<B> map(List<A> list, F<A, B> f) {
1214
return fj.data.List.list(list).map(f).toJavaList();
1315
}
16+
17+
public static<A> List<A> filter(List<A> list, F<A, Boolean> f) {
18+
return fj.data.List.list(list).filter(f).toJavaList();
19+
}
20+
21+
public static <A, B> B fold(List<A> list, F2<B, A, B> f, B b) {
22+
return fj.data.List.list(list).foldLeft(f, b);
23+
}
24+
25+
public static <A, B> List<B> flatMap(List<A> list, F<A, List<B>> f) {
26+
return fj.data.List.list(list).bind(a -> fj.data.List.list(f.f(a))).toJavaList();
27+
}
28+
29+
public static <A, B> List<B> bind(List<A> list, F<A, List<B>> f) {
30+
return flatMap(list, f);
31+
}
32+
1433
}

0 commit comments

Comments
 (0)