GeezerVison is showing github.com — Added conversion functions between types · cloudbank/functionaljava@64ad2e9
File tree
Expand file treeCollapse file tree
Open diff view settings
core/src/main/java/fj/data java8/src/main/java/fj/data
Expand file treeCollapse file tree
Open diff view settings
Collapse file
Copy file name to clipboardExpand all lines: core/src/main/java/fj/data/Conversions.java +53-1Lines changed: 53 additions & 1 deletion | Original file line number | Diff line number | Diff line change |
|---|
|
1 | 1 | package fj.data; |
2 | 2 |
|
3 | | -import fj.Effect; |
4 | 3 | import fj.F; |
| 4 | +import fj.P; |
5 | 5 | import fj.P1; |
| 6 | +import fj.Unit; |
| 7 | +import fj.function.Effect0; |
6 | 8 | import fj.function.Effect1; |
7 | 9 |
|
| 10 | +import static fj.Unit.unit; |
8 | 11 | import static fj.data.List.asString; |
9 | 12 | import static fj.data.List.fromString; |
10 | 13 |
|
@@ -391,6 +394,43 @@ public StringBuilder f(final Option<Character> o) { |
391 | 394 |
|
392 | 395 | // END Option -> |
393 | 396 |
|
| 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 | + |
394 | 434 | // BEGIN Either -> |
395 | 435 |
|
396 | 436 | /** |
@@ -577,6 +617,18 @@ public StringBuilder f(final Either<A, Character> e) { |
577 | 617 |
|
578 | 618 | // END Either -> |
579 | 619 |
|
| 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 | + |
580 | 632 | // BEGIN String -> |
581 | 633 |
|
582 | 634 | /** |
|
Collapse file
Copy file name to clipboardExpand all lines: java8/src/main/java/fj/data/Java8.java +13Lines changed: 13 additions & 0 deletions | Original file line number | Diff line number | Diff line change |
|---|
|
7 | 7 |
|
8 | 8 | import java.util.Optional; |
9 | 9 | import java.util.function.BiFunction; |
| 10 | +import java.util.function.Consumer; |
10 | 11 | import java.util.function.Function; |
11 | 12 | import java.util.function.Supplier; |
12 | 13 |
|
@@ -107,4 +108,16 @@ static public <A> F<Option<A>, Optional<A>> Option_Optional() { |
107 | 108 | return o -> o.isSome() ? Optional.ofNullable(o.some()) : Optional.empty(); |
108 | 109 | } |
109 | 110 |
|
| 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 | + |
110 | 123 | } |