File tree Expand file tree Collapse file tree 2 files changed +66
-1
lines changed
core/src/main/java/fj/data
java8/src/main/java/fj/data Expand file tree Collapse file tree 2 files changed +66
-1
lines changed Original file line number Diff line number Diff line change 11package fj .data ;
22
3- import fj .Effect ;
43import fj .F ;
4+ import fj .P ;
55import fj .P1 ;
6+ import fj .Unit ;
7+ import fj .function .Effect0 ;
68import fj .function .Effect1 ;
79
10+ import static fj .Unit .unit ;
811import static fj .data .List .asString ;
912import static fj .data .List .fromString ;
1013
@@ -391,6 +394,43 @@ public StringBuilder f(final Option<Character> o) {
391394
392395 // END Option ->
393396
397+ // BEGIN Effect
398+
399+ public static F <Effect0 , P1 <Unit >> Effect0_P1 () {
400+ return e -> Effect0_P1 (e );
401+ }
402+
403+ public static P1 <Unit > Effect0_P1 (Effect0 e ) {
404+ return P .lazy (u -> {
405+ e .f ();
406+ return unit ();
407+ });
408+ }
409+
410+ public static IO <Unit > Effect_IO (Effect0 e ) {
411+ return () ->{
412+ e .f ();
413+ return Unit .unit ();
414+ };
415+ }
416+
417+ public static F <Effect0 , IO <Unit >> Effect_IO () {
418+ return e -> Effect_IO (e );
419+ }
420+
421+ public static SafeIO <Unit > Effect_SafeIO (Effect0 e ) {
422+ return () -> {
423+ e .f ();
424+ return unit ();
425+ };
426+ }
427+
428+ public static F <Effect0 , SafeIO <Unit >> Effect_SafeIO () {
429+ return e -> Effect_SafeIO (e );
430+ }
431+
432+ // END Effect
433+
394434 // BEGIN Either ->
395435
396436 /**
@@ -577,6 +617,18 @@ public StringBuilder f(final Either<A, Character> e) {
577617
578618 // END Either ->
579619
620+ // BEGIN F
621+
622+ public static <A > SafeIO <A > F_SafeIO (F <Unit , A > f ) {
623+ return () -> f .f (unit ());
624+ }
625+
626+ public static <A > F <F <Unit , A >, SafeIO <A >> F_SafeIO () {
627+ return f -> F_SafeIO (f );
628+ }
629+
630+ // END F
631+
580632 // BEGIN String ->
581633
582634 /**
Original file line number Diff line number Diff line change 77
88import java .util .Optional ;
99import java .util .function .BiFunction ;
10+ import java .util .function .Consumer ;
1011import java .util .function .Function ;
1112import java .util .function .Supplier ;
1213
@@ -107,4 +108,16 @@ static public <A> F<Option<A>, Optional<A>> Option_Optional() {
107108 return o -> o .isSome () ? Optional .ofNullable (o .some ()) : Optional .empty ();
108109 }
109110
111+ static public <A > F <Consumer <A >, F <A , Unit >> Consumer_F () {
112+ return c -> Consumer_F (c );
113+ }
114+
115+ public static <A > F <A , Unit > Consumer_F (Consumer <A > c ) {
116+ return a -> {
117+ c .accept (a );
118+ return Unit .unit ();
119+ };
120+ }
121+
122+
110123}
You can’t perform that action at this time.
0 commit comments