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
2 changes: 1 addition & 1 deletion core/src/main/java/fj/Function.java
Original file line number Diff line number Diff line change
Expand Up @@ -734,7 +734,7 @@ public static <A, B, C> F<C, B> bind(final F<C, A> ma, final F<A, F<C, B>> f) {
* @return A new function after applying the given higher-order function to the given function.
*/
public static <A, B, C> F<C, B> apply(final F<C, F<A, B>> cab, final F<C, A> ca) {
return bind(cab, f -> compose(a -> f.f(a), ca));
return bind(cab, f -> compose(f, ca));
}

/**
Expand Down
2 changes: 1 addition & 1 deletion core/src/main/java/fj/data/Stream.java
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ public static <A> Stream<Option<A>> sequence(final Option<Stream<A>> o) {
* @return A new stream after applying the given stream of functions through this stream.
*/
public final <B> Stream<B> apply(final Stream<F<A, B>> sf) {
return sf.bind(f -> map(a -> f.f(a)));
return sf.bind(f -> map(f));
}

/**
Expand Down
12 changes: 4 additions & 8 deletions core/src/main/java/fj/data/Validation.java
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public <X> X validation(final F<E, X> fail, final F<T, X> success) {
* @return a failing projection of this validation.
*/
public FailProjection<E, T> f() {
return new FailProjection<E, T>(this);
return new FailProjection<>(this);
}

/**
Expand Down Expand Up @@ -231,11 +231,7 @@ public <A> Option<Validation<A, T>> filter(final F<T, Boolean> f) {
* @return The result of function application in validation.
*/
public <A> Validation<E, A> apply(final Validation<E, F<T, A>> v) {
return v.bind(new F<F<T, A>, Validation<E, A>>() {
public Validation<E, A> f(final F<T, A> f) {
return map(f);
}
});
return v.bind(this::map);
}

/**
Expand Down Expand Up @@ -871,7 +867,7 @@ public static <A, E> List<A> successes(List<Validation<?, A>> list) {
/**
* A failing projection of a validation.
*/
public final class FailProjection<E, T> implements Iterable<E> {
public static final class FailProjection<E, T> implements Iterable<E> {
private final Validation<E, T> v;

private FailProjection(final Validation<E, T> v) {
Expand Down Expand Up @@ -1098,7 +1094,7 @@ public Validation<NonEmptyList<E>, T> nel() {
* @return A validation using the given either value.
*/
public static <E, T> Validation<E, T> validation(final Either<E, T> e) {
return new Validation<E, T>(e);
return new Validation<>(e);
}

/**
Expand Down
26 changes: 11 additions & 15 deletions core/src/main/java/fj/data/optic/Traversal.java
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package fj.data.optic;

import fj.F;
import fj.F2;
import fj.F3;
import fj.F4;
import fj.F5;
import fj.F6;
import fj.F7;
import fj.Monoid;
import fj.P1;
import fj.control.Trampoline;
Expand Down Expand Up @@ -123,33 +123,29 @@ public static <S> Traversal<Either<S, S>, S> codiagonal() {
return new Traversal<>(PTraversal.pCodiagonal());
}

public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F2<A, A, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, (a1, a2, s) -> set.f(a1, a2)));
public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F3<A, A, S, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, set));
}

public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F<S, A> get3,
final F3<A, A, A, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, (a1, a2, a3, s) -> set.f(a1, a2, a3)));
final F4<A, A, A, S, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, set));
}

public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F<S, A> get3,
final F<S, A> get4,
final F4<A, A, A, A, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, get4, (a1, a2, a3, a4, s) -> set.f(a1, a2, a3, a4)));
final F<S, A> get4, final F5<A, A, A, A, S, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, get4, set));
}

public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F<S, A> get3,
final F<S, A> get4, final F<S, A> get5,
final F5<A, A, A, A, A, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, get4, get5,
(a1, a2, a3, a4, a5, s) -> set.f(a1, a2, a3, a4, a5)));
final F<S, A> get4, final F<S, A> get5, final F6<A, A, A, A, A, S, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, get4, get5, set));
}

public static <S, A> Traversal<S, A> traversal(final F<S, A> get1, final F<S, A> get2, final F<S, A> get3,
final F<S, A> get4, final F<S, A> get5, final F<S, A> get6,
final F6<A, A, A, A, A, A, S> set) {
final F<S, A> get4, final F<S, A> get5, final F<S, A> get6, final F7<A, A, A, A, A, A, S, S> set) {
return new Traversal<>(PTraversal.pTraversal(get1, get2, get3, get4, get5, get6,
(a1, a2, a3, a4, a5, a6, s) -> set.f(a1, a2, a3, a4, a5, a6)));
set));
}

}