
net.cassite.f.Applicative Maven / Gradle / Ivy
package net.cassite.f;
import io.vertx.core.Future;
import java.util.function.Function;
public class Applicative implements IMonad>, AsTransformable> {
private final Monad extends Function> monad;
Applicative(Monad extends Function> monad) {
this.monad = monad;
}
@Override
public Monad map(Function, U> mapper) {
return monad.map(mapper::apply);
}
@Override
public Monad compose(Function, Future> mapper) {
return monad.compose(mapper::apply);
}
public Monad ap(Future fu) {
return monad.compose(fu::map);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy