22
33import fj .*;
44
5+ import java .util .Optional ;
56import java .util .function .BiFunction ;
67import java .util .function .Function ;
78import java .util .function .Supplier ;
@@ -15,40 +16,92 @@ private Java8() {
1516 throw new UnsupportedOperationException ();
1617 }
1718
18- public static <A > P1 <A > toP1 ( Supplier <A > f ) {
19- return () -> f . get ( );
19+ public static <A > P1 <A > Supplier_P1 ( final Supplier <A > s ) {
20+ return Java8 .< A > Supplier_P1 (). f ( s );
2021 }
2122
22- public static <A > Supplier <A > toSupplier ( P1 <A > p ) {
23- return () -> p . _1 ();
23+ public static <A > F < Supplier <A >, P1 <A >> Supplier_P1 ( ) {
24+ return s -> () -> s . get ();
2425 }
2526
26- public static <A , B > F < A , B > toF ( Function < A , B > f ) {
27- return a -> f . apply ( a );
27+ public static <A > Supplier < A > P1_Supplier ( final P1 < A > p ) {
28+ return Java8 .< A > P1_Supplier (). f ( p );
2829 }
2930
30- public static <A , B > Function < A , B > toFunction ( F < A , B > f ) {
31- return a -> f . f ( a );
31+ public static <A > F < P1 < A >, Supplier < A >> P1_Supplier ( ) {
32+ return ( p ) -> () -> p . _1 ( );
3233 }
3334
34- public static <A , B , C > F2 <A , B , C > toF2 ( BiFunction <A , B , C > f ) {
35- return ( a , b ) -> f . apply ( a , b );
35+ public static <A , B > F <A , B > Function_F ( final Function <A , B > f ) {
36+ return Java8 .< A , B > Function_F (). f ( f );
3637 }
3738
38- public static <A , B , C > BiFunction < A , B , C > toBiFunction ( F2 <A , B , C > f ) {
39- return ( a , b ) -> f .f ( a , b );
39+ public static <A , B > F < Function < A , B >, F <A , B >> Function_F ( ) {
40+ return f -> a -> f .apply ( a );
4041 }
4142
42- static public < A > Supplier < Validation < Exception , A >> toSupplier (final TryCatch0 < A > t ) {
43- return toSupplier ( P1Functions . toP1 ( t ) );
43+ public static < A , B > Function < A , B > F_Function (final F < A , B > f ) {
44+ return Java8 .< A , B > F_Function (). f ( f );
4445 }
4546
46- static public <A , B > Function < A , Validation < Exception , B >> toFunction ( final TryCatch1 <A , B > t ) {
47- return toFunction ( F1Functions . toF1 ( t ) );
47+ public static <A , B > F < F < A , B >, Function <A , B >> F_Function ( ) {
48+ return f -> a -> f . f ( a );
4849 }
4950
50- static public <A , B , C > BiFunction <A , B , Validation <Exception , C >> toBiFunction (final TryCatch2 <A , B , C > t ) {
51- return toBiFunction (F2Functions .toF2 (t ));
51+ public static <A , B , C > F2 <A , B , C > BiFunction_F2 (final BiFunction <A , B , C > f ) {
52+ return Java8 .<A , B , C >BiFunction_F2 ().f (f );
53+ }
54+
55+ public static <A , B , C > F <BiFunction <A , B , C >, F2 <A , B , C >> BiFunction_F2 () {
56+ return f -> (a , b ) -> f .apply (a , b );
57+ }
58+
59+ public static <A , B , C > BiFunction <A , B , C > F2_BiFunction (final F2 <A , B , C > f ) {
60+ return Java8 .<A , B , C >F2_BiFunction ().f (f );
61+ }
62+
63+ public static <A , B , C > F <F2 <A , B , C >, BiFunction <A , B , C >> F2_BiFunction () {
64+ return f -> (a , b ) -> f .f (a , b );
65+ }
66+
67+ static public <A > Supplier <Validation <Exception , A >> TryCatch0_Supplier (final TryCatch0 <A > t ) {
68+ return Java8 .<A >TryCatch0_Supplier ().f (t );
69+ }
70+
71+ static public <A > F <TryCatch0 <A >, Supplier <Validation <Exception , A >>> TryCatch0_Supplier () {
72+ return t -> () -> P1Functions .toP1 (t )._1 ();
73+ }
74+
75+ static public <A , B > Function <A , Validation <Exception , B >> TryCatch1_Function (final TryCatch1 <A , B > t ) {
76+ return Java8 .<A , B >TryCatch1_Function ().f (t );
77+ }
78+
79+ static public <A , B > F <TryCatch1 <A , B >, Function <A , Validation <Exception , B >>> TryCatch1_Function () {
80+ return t -> a -> F1Functions .toF1 (t ).f (a );
81+ }
82+
83+ static public <A , B , C > BiFunction <A , B , Validation <Exception , C >> TryCatch2_BiFunction (final TryCatch2 <A , B , C > t ) {
84+ return Java8 .<A , B , C >TryCatch2_BiFunction ().f (t );
85+ }
86+
87+ static public <A , B , C > F <TryCatch2 <A , B , C >, BiFunction <A , B , Validation <Exception , C >>> TryCatch2_BiFunction () {
88+ return t -> (a , b ) -> F2Functions .toF2 (t ).f (a , b );
89+ }
90+
91+ static public <A > Option <A > Optional_Option (final Optional <A > o ) {
92+ return Java8 .<A >Optional_Option ().f (o );
93+ }
94+
95+ static public <A > F <Optional <A >, Option <A >> Optional_Option () {
96+ return o -> o .isPresent () ? Option .fromNull (o .get ()) : Option .none ();
97+ }
98+
99+ static public <A > Optional <A > Option_Optional (final Option <A > o ) {
100+ return Java8 .<A >Option_Optional ().f (o );
101+ }
102+
103+ static public <A > F <Option <A >, Optional <A >> Option_Optional () {
104+ return o -> o .isSome () ? Optional .ofNullable (o .some ()) : Optional .empty ();
52105 }
53106
54107}
0 commit comments