Skip to content

Commit a6636d5

Browse files
committed
Renaming current fn2 sfm to curried, and new fn2 just aids inference
1 parent 60a7eff commit a6636d5

File tree

7 files changed

+27
-16
lines changed

7 files changed

+27
-16
lines changed

src/main/java/com/jnape/palatable/lambda/functions/Fn1.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import java.util.function.Function;
1414

15-
import static com.jnape.palatable.lambda.functions.Fn2.fn2;
15+
import static com.jnape.palatable.lambda.functions.Fn2.curried;
1616
import static com.jnape.palatable.lambda.functions.builtin.fn1.Constantly.constantly;
1717

1818
/**
@@ -69,7 +69,7 @@ default Fn0<B> thunk(A a) {
6969
* @return the widened function
7070
*/
7171
default <Z> Fn2<Z, A, B> widen() {
72-
return fn2(constantly(this));
72+
return curried(constantly(this));
7373
}
7474

7575
/**
@@ -246,7 +246,7 @@ default <Z> Fn1<Z, B> contraMap(Fn1<? super Z, ? extends A> fn) {
246246
* @return an {@link Fn2}&lt;Y, Z, B&gt;
247247
*/
248248
default <Y, Z> Fn2<Y, Z, B> compose(Fn2<? super Y, ? super Z, ? extends A> before) {
249-
return fn2(before.fmap(this::contraMap))::apply;
249+
return curried(before.fmap(this::contraMap))::apply;
250250
}
251251

252252
/**

src/main/java/com/jnape/palatable/lambda/functions/Fn2.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,23 +100,23 @@ default BiFunction<A, B, C> toBiFunction() {
100100
*/
101101
@Override
102102
default <D> Fn2<A, B, C> discardR(Applicative<D, Fn1<A, ?>> appB) {
103-
return fn2(Fn1.super.discardR(appB));
103+
return curried(Fn1.super.discardR(appB));
104104
}
105105

106106
/**
107107
* {@inheritDoc}
108108
*/
109109
@Override
110110
default <Z> Fn2<Z, B, C> diMapL(Fn1<? super Z, ? extends A> fn) {
111-
return fn2(Fn1.super.diMapL(fn));
111+
return curried(Fn1.super.diMapL(fn));
112112
}
113113

114114
/**
115115
* {@inheritDoc}
116116
*/
117117
@Override
118118
default <Z> Fn2<Z, B, C> contraMap(Fn1<? super Z, ? extends A> fn) {
119-
return fn2(Fn1.super.contraMap(fn));
119+
return curried(Fn1.super.contraMap(fn));
120120
}
121121

122122
/**
@@ -149,7 +149,12 @@ static <A, B, C> Fn2<A, B, C> fromBiFunction(BiFunction<? super A, ? super B, ?
149149
* @param <C> the output type
150150
* @return the {@link Fn2}
151151
*/
152-
static <A, B, C> Fn2<A, B, C> fn2(Fn1<A, Fn1<B, C>> curriedFn1) {
152+
static <A, B, C> Fn2<A, B, C> curried(Fn1<A, Fn1<B, C>> curriedFn1) {
153153
return (a, b) -> curriedFn1.apply(a).apply(b);
154154
}
155+
156+
static <A, B, C> Fn2<A, B, C> fn2(Fn2<A, B, C> fn2) {
157+
return fn2;
158+
}
159+
155160
}

src/main/java/com/jnape/palatable/lambda/monoid/builtin/Endo.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import com.jnape.palatable.lambda.functions.Fn2;
55
import com.jnape.palatable.lambda.monoid.Monoid;
66

7-
import static com.jnape.palatable.lambda.functions.Fn2.fn2;
7+
import static com.jnape.palatable.lambda.functions.Fn2.curried;
88
import static com.jnape.palatable.lambda.functions.builtin.fn1.Id.id;
99

1010
/**
@@ -35,7 +35,7 @@ public Fn1<A, A> checkedApply(Fn1<A, A> f, Fn1<A, A> g) {
3535

3636
@Override
3737
public Fn2<Fn1<A, A>, A, A> apply(Fn1<A, A> f) {
38-
return fn2(Monoid.super.apply(f));
38+
return curried(Monoid.super.apply(f));
3939
}
4040

4141
@SuppressWarnings("unchecked")

src/main/java/com/jnape/palatable/lambda/optics/Iso.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ default <U> Iso<S, T, A, B> discardR(Applicative<U, Iso<S, ?, A, B>> appB) {
137137
@Override
138138
default <U> Iso<S, U, A, B> flatMap(Fn1<? super T, ? extends Monad<U, Iso<S, ?, A, B>>> fn) {
139139
//noinspection RedundantTypeArguments
140-
return unIso().fmap(bt -> Fn2.<B, B, U>fn2(
140+
return unIso().fmap(bt -> Fn2.<B, B, U>curried(
141141
fn1(bt.fmap(fn.<Iso<S, U, A, B>>fmap(Monad<U, Iso<S, ?, A, B>>::coerce))
142142
.fmap(Iso::unIso)
143143
.fmap(Tuple2::_2)

src/main/java/com/jnape/palatable/lambda/optics/lenses/IterableLens.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.jnape.palatable.lambda.optics.Iso;
77
import com.jnape.palatable.lambda.optics.Lens;
88

9-
import static com.jnape.palatable.lambda.functions.Fn2.fn2;
9+
import static com.jnape.palatable.lambda.functions.Fn2.curried;
1010
import static com.jnape.palatable.lambda.functions.builtin.fn1.Id.id;
1111
import static com.jnape.palatable.lambda.functions.builtin.fn2.Cons.cons;
1212
import static com.jnape.palatable.lambda.functions.builtin.fn2.Map.map;
@@ -45,7 +45,7 @@ public static <A> Lens.Simple<Iterable<A>, Maybe<A>> head() {
4545
* @return a lens focusing on the tail of an {@link Iterable}
4646
*/
4747
public static <A> Lens.Simple<Iterable<A>, Iterable<A>> tail() {
48-
return simpleLens(Tail::tail, fn2(Head.<A>head().fmap(o -> o.fmap(cons()).orElse(id()))));
48+
return simpleLens(Tail::tail, curried(Head.<A>head().fmap(o -> o.fmap(cons()).orElse(id()))));
4949
}
5050

5151
/**

src/main/java/com/jnape/palatable/lambda/traversable/LambdaMap.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import java.util.Objects;
1111

1212
import static com.jnape.palatable.lambda.adt.hlist.HList.tuple;
13-
import static com.jnape.palatable.lambda.functions.Fn2.fn2;
13+
import static com.jnape.palatable.lambda.functions.Fn2.curried;
1414
import static com.jnape.palatable.lambda.functions.builtin.fn2.Into.into;
1515
import static com.jnape.palatable.lambda.functions.builtin.fn2.Map.map;
1616
import static com.jnape.palatable.lambda.functions.builtin.fn2.ToMap.toMap;
@@ -50,7 +50,7 @@ public <C> LambdaMap<A, C> fmap(Fn1<? super B, ? extends C> fn) {
5050
AppC extends Applicative<C, App>,
5151
AppTrav extends Applicative<TravC, App>> AppTrav traverse(Fn1<? super B, ? extends AppC> fn,
5252
Fn1<? super TravC, ? extends AppTrav> pure) {
53-
return foldLeft(fn2(appTrav -> into((k, appV) -> (AppTrav) appTrav.<TravC>zip(appV.fmap(v -> m -> {
53+
return foldLeft(curried(appTrav -> into((k, appV) -> (AppTrav) appTrav.<TravC>zip(appV.fmap(v -> m -> {
5454
((LambdaMap<A, C>) m).unwrap().put(k, v);
5555
return m;
5656
})))),

src/test/java/com/jnape/palatable/lambda/functions/Fn2Test.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,15 @@ public void toBiFunction() {
3636
}
3737

3838
@Test
39-
public void fn2() {
39+
public void curried() {
4040
Fn1<String, Fn1<String, String>> curriedFn1 = (x) -> (y) -> String.format(x, y);
41-
assertEquals("foo bar", Fn2.fn2(curriedFn1).apply("foo %s", "bar"));
41+
assertEquals("foo bar", Fn2.curried(curriedFn1).apply("foo %s", "bar"));
42+
}
43+
44+
@Test
45+
public void fn2() {
46+
Fn2<String, String, String> fn2 = Fn2.fn2(String::format);
47+
assertEquals("foo bar", fn2.apply("foo %s", "bar"));
4248
}
4349

4450
@Test

0 commit comments

Comments
 (0)