Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 5 additions & 11 deletions demo/src/main/java/fj/demo/Array_exists.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
package fj.demo;

import fj.F;
import fj.data.Array;
import static fj.data.Array.array;
import static fj.data.List.fromString;
import static fj.function.Characters.isLowerCase;

public final class Array_exists {
public static void main(final String[] args) {
final Array<String> a = array("Hello", "There", "what", "DAY", "iS", "iT");
final boolean b = a.exists(new F<String, Boolean>() {
public Boolean f(final String s) {
return fromString(s).forall(isLowerCase);
}
});
final boolean b2 = a.exists(s -> fromString(s).forall(isLowerCase));
System.out.println(b); // true ("what" provides the only example; try removing it)
}
public static void main(final String[] args) {
final Array<String> a = array("Hello", "There", "what", "DAY", "iS", "iT");
final boolean b = a.exists(s -> fromString(s).forall(isLowerCase));
System.out.println(b); // true ("what" is the only value that qualifies; try removing it)
}
}
12 changes: 6 additions & 6 deletions demo/src/main/java/fj/demo/Array_filter.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
import static fj.function.Integers.even;

public final class Array_filter {
public static void main(final String[] args) {
final Array<Integer> a = array(97, 44, 67, 3, 22, 90, 1, 77, 98, 1078, 6, 64, 6, 79, 42);
final Array<Integer> b = a.filter(even);
final Array<Integer> c = a.filter(i -> i % 2 == 0);
arrayShow(intShow).println(b); // {44,22,90,98,1078,6,64,6,42}
}
public static void main(final String[] args) {
final Array<Integer> a = array(97, 44, 67, 3, 22, 90, 1, 77, 98, 1078, 6, 64, 6, 79, 42);
final Array<Integer> b = a.filter(even);
final Array<Integer> c = a.filter(i -> i % 2 == 0);
arrayShow(intShow).println(b); // {44,22,90,98,1078,6,64,6,42}
}
}
19 changes: 9 additions & 10 deletions demo/src/main/java/fj/demo/Array_foldLeft.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@
import static fj.function.Integers.add;

public final class Array_foldLeft {
public static void main(final String[] args) {
final Array<Integer> a = array(97, 44, 67, 3, 22, 90, 1, 77, 98, 1078, 6, 64, 6, 79, 42);
final int b = a.foldLeft(add, 0);
public static void main(final String[] args) {
final Array<Integer> a = array(97, 44, 67, 3, 22, 90, 1, 77, 98, 1078, 6, 64, 6, 79, 42);
final int b = a.foldLeft(add, 0);

// WARNING: In JDK 8, update 20 and 25 (current version) the following code triggers an internal JDK compiler error, likely due to https://bugs.openjdk.java.net/browse/JDK-8062253. The code below is a workaround for this compiler bug.
// final int c = a.foldLeft(i -> (j -> i + j), 0);
F<Integer, F<Integer, Integer>> add2 = i -> (j -> i + j);
final int c = a.foldLeft(add2, 0);

System.out.println(b); // 1774
}
// WARNING: In JDK 8, update 20 and 25 (current version) the following code triggers an internal JDK compiler error, likely due to https://bugs.openjdk.java.net/browse/JDK-8062253. The code below is a workaround for this compiler bug.
// final int c = a.foldLeft(i -> (j -> i + j), 0);
F<Integer, F<Integer, Integer>> add2 = i -> (j -> i + j);
final int c = a.foldLeft(add2, 0);
System.out.println(b); // 1774
}
}
16 changes: 5 additions & 11 deletions demo/src/main/java/fj/demo/Array_forall.java
Original file line number Diff line number Diff line change
@@ -1,20 +1,14 @@
package fj.demo;

import fj.F;
import fj.data.Array;
import static fj.data.Array.array;
import static fj.data.List.fromString;
import static fj.function.Characters.isLowerCase;

public final class Array_forall {
public static void main(final String[] args) {
final Array<String> a = array("hello", "There", "what", "day", "is", "it");
final boolean b = a.forall(new F<String, Boolean>() {
public Boolean f(final String s) {
return fromString(s).forall(isLowerCase);
}
});
final boolean b2 = a.forall(s -> fromString(s).forall(isLowerCase));
System.out.println(b); // false ("There" is a counter-example; try removing it)
}
public static void main(final String[] args) {
final Array<String> a = array("hello", "There", "what", "day", "is", "it");
final boolean b = a.forall(s -> fromString(s).forall(isLowerCase));
System.out.println(b); // false ("There" is a counter-example; try removing it)
}
}
1 change: 0 additions & 1 deletion demo/src/main/java/fj/demo/Array_map.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package fj.demo;

import fj.data.Array;

import static fj.data.Array.array;
import static fj.function.Integers.add;
import static fj.Show.arrayShow;
Expand Down
1 change: 0 additions & 1 deletion demo/src/main/java/fj/demo/List_map.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package fj.demo;

import fj.data.List;

import static fj.data.List.list;
import static fj.function.Integers.add;
import static fj.Show.intShow;
Expand Down
58 changes: 30 additions & 28 deletions demo/src/main/java/fj/demo/Option_bind.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,40 @@

import fj.F;
import fj.data.Option;
import static fj.data.Option.none;
import static fj.data.Option.some;
import static fj.Show.intShow;
import static fj.Show.optionShow;
import static fj.data.Option.none;
import static fj.data.Option.some;

public final class Option_bind {
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = some(8);
final Option<Integer> o3 = none();
final Option<Integer> p1 = o1.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});
final Option<Integer> p2 = o2.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});
final Option<Integer> p3 = o3.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = some(8);
final Option<Integer> o3 = none();

F<Integer, Option<Integer>> f = i -> i % 2 == 0 ? some(i * 3) : none();
final Option<Integer> o4 = o1.bind(f);
final Option<Integer> o5 = o2.bind(f);
final Option<Integer> o6 = o3.bind(f);

final Option<Integer> p4 = o1.bind(i -> i % 2 == 0 ? some(i * 3) : Option.<Integer>none());
final Option<Integer> p5 = o2.bind(i -> i % 2 == 0 ? some(i * 3) : Option.<Integer>none());
final Option<Integer> p6 = o3.bind(i -> i % 2 == 0 ? some(i * 3) : Option.<Integer>none());
final Option<Integer> p1 = o1.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});
final Option<Integer> p2 = o2.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});
final Option<Integer> p3 = o3.bind(new F<Integer, Option<Integer>>() {
public Option<Integer> f(final Integer i) {
return i % 2 == 0 ? some(i * 3) : Option.<Integer>none();
}
});

optionShow(intShow).println(p1); // None
optionShow(intShow).println(p2); // Some(24)
optionShow(intShow).println(p3); // None
}
optionShow(intShow).println(o4); // None
optionShow(intShow).println(o5); // Some(24)
optionShow(intShow).println(o6); // None
}
}
35 changes: 19 additions & 16 deletions demo/src/main/java/fj/demo/Option_filter.java
Original file line number Diff line number Diff line change
@@ -1,27 +1,30 @@
package fj.demo;

import fj.F;
import fj.data.Option;
import static fj.Show.intShow;
import static fj.Show.optionShow;
import static fj.data.Option.none;
import static fj.data.Option.some;
import static fj.function.Integers.even;
import static fj.Show.intShow;
import static fj.Show.optionShow;

public final class Option_filter {
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = none();
final Option<Integer> o3 = some(8);
final Option<Integer> p1 = o1.filter(even);
final Option<Integer> p2 = o2.filter(even);
final Option<Integer> p3 = o3.filter(even);
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = none();
final Option<Integer> o3 = some(8);

final Option<Integer> o4 = o1.filter(even);
final Option<Integer> o5 = o2.filter(even);
final Option<Integer> o6 = o3.filter(even);

final Option<Integer> p4 = o1.filter(i -> i % 2 == 0);
final Option<Integer> p5 = o1.filter(i -> i % 2 == 0);
final Option<Integer> p6 = o1.filter(i -> i % 2 == 0);
F<Integer, Boolean> f = i -> i % 2 == 0;
final Option<Integer> o7 = o1.filter(f);
final Option<Integer> o8 = o1.filter(f);
final Option<Integer> o9 = o1.filter(i -> i % 2 == 0);

optionShow(intShow).println(p1); // None
optionShow(intShow).println(p2); // None
optionShow(intShow).println(p3); // Some(8)
}
optionShow(intShow).println(o4); // None
optionShow(intShow).println(o5); // None
optionShow(intShow).println(o6); // Some(8)
}
}
24 changes: 12 additions & 12 deletions demo/src/main/java/fj/demo/Option_map.java
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
package fj.demo;

import fj.data.Option;
import static fj.Show.intShow;
import static fj.Show.optionShow;
import static fj.data.Option.none;
import static fj.data.Option.some;
import static fj.function.Integers.add;
import static fj.Show.intShow;
import static fj.Show.optionShow;

public final class Option_map {
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = none();
final Option<Integer> p1 = o1.map(add.f(42));
final Option<Integer> p2 = o2.map(add.f(42));
public static void main(final String[] args) {
final Option<Integer> o1 = some(7);
final Option<Integer> o2 = none();
final Option<Integer> p1 = o1.map(add.f(42));
final Option<Integer> p2 = o2.map(add.f(42));

final Option<Integer> p3 = o1.map(i -> i + 42);
final Option<Integer> p4 = o2.map(i -> i + 42);
final Option<Integer> p3 = o1.map(i -> i + 42);
final Option<Integer> p4 = o2.map(i -> i + 42);

optionShow(intShow).println(p1); // Some(49)
optionShow(intShow).println(p2); // None
}
optionShow(intShow).println(p1); // Some(49)
optionShow(intShow).println(p2); // None
}
}