
fj.function.Effect1 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of functionaljava Show documentation
Show all versions of functionaljava Show documentation
Functional Java is an open source library that supports closures for the Java programming language
The newest version!
package fj.function;
import fj.F;
import fj.P;
import fj.P1;
import fj.Unit;
import java.util.function.Consumer;
import static fj.Unit.unit;
public interface Effect1 extends Consumer {
void f(A a);
default void accept(A a) {
f(a);
}
default F bind(final F> g) {
return a -> {
return g.f(toF().f(a)).f(a);
};
}
default void apply(A a) {
f(a);
}
default Effect1 contramap(F f) {
return o(f);
}
default F map(F f) {
return a -> f.f(toF().f(a));
}
default F andThen(final F f) {
return map(f);
}
default Effect1 o(final F f) {
return c -> f(f.f(c));
}
default F toF() {
return a -> {
f(a);
return unit();
};
}
default TryEffect1 toTryEffect1() {
return a -> f(a);
}
default Try1 toTry1() {
return a -> toF().f(a);
}
static Effect1 fromF(F f) {
return a -> f.f(a);
}
default F dimap(F f, F g) {
return c -> g.f(toF().f(f.f(c)));
}
default P1 partial(final A a) {
return P.lazy(() -> toF().f(a));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy