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;
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> o4 = o1.filter(even);
final Option<Integer> o5 = o2.filter(even);
final Option<Integer> o6 = o3.filter(even);
F<Integer, Boolean> f = i -> i % 2 == 0;
final Option<Integer> o7 = o4.filter(f);
final Option<Integer> o8 = o5.filter(f);
final Option<Integer> o9 = o6.filter(i -> i % 2 == 0);
optionShow(intShow).println(o7); // None
optionShow(intShow).println(o8); // None
optionShow(intShow).println(o9); // Some(8)
}
}