Skip to content

Commit 7ee5960

Browse files
committed
Converted fj root to use lambdas
1 parent e4a7cad commit 7ee5960

File tree

7 files changed

+73
-369
lines changed

7 files changed

+73
-369
lines changed

core/src/main/java/fj/Function.java

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,7 @@ private Function() {
1919
* @return A function that is partially-applied to the given value.
2020
*/
2121
public static <A, B> F<F<A, B>, B> apply(final A a) {
22-
return new F<F<A, B>, B>() {
23-
public B f(final F<A, B> k) {
24-
return k.f(a);
25-
}
26-
};
22+
return f -> f.f(a);
2723
}
2824

2925
/**
@@ -32,15 +28,7 @@ public B f(final F<A, B> k) {
3228
* @return A function that composes two functions to produce a new function.
3329
*/
3430
public static <A, B, C> F<F<B, C>, F<F<A, B>, F<A, C>>> compose() {
35-
return new F<F<B, C>, F<F<A, B>, F<A, C>>>() {
36-
public F<F<A, B>, F<A, C>> f(final F<B, C> f) {
37-
return new F<F<A, B>, F<A, C>>() {
38-
public F<A, C> f(final F<A, B> g) {
39-
return compose(f, g);
40-
}
41-
};
42-
}
43-
};
31+
return f -> g -> compose(f, g);
4432
}
4533

4634
/**
@@ -555,11 +543,7 @@ public static <A, B, C, D, E> F4<A, B, C, D, E> uncurryF4(final F<A, F<B, F<C, F
555543
* @return An uncurried function.
556544
*/
557545
public static <A, B, C, D, E, F$, G, H> F<F<A, F<B, F<C, F<D, F<E, F<F$, F<G, H>>>>>>>, F7<A, B, C, D, E, F$, G, H>> uncurryF7() {
558-
return new F<F<A, F<B, F<C, F<D, F<E, F<F$, F<G, H>>>>>>>, F7<A, B, C, D, E, F$, G, H>>() {
559-
public F7<A, B, C, D, E, F$, G, H> f(final F<A, F<B, F<C, F<D, F<E, F<F$, F<G, H>>>>>>> f) {
560-
return uncurryF7(f);
561-
}
562-
};
546+
return f -> uncurryF7(f);
563547
}
564548

565549
/**

core/src/main/java/fj/Monoid.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,7 @@ public A sumLeft(final Stream<A> as) {
151151
* @return a function that sums the given values with left-fold.
152152
*/
153153
public F<List<A>, A> sumLeft() {
154-
return new F<List<A>, A>() {
155-
public A f(final List<A> as) {
156-
return sumLeft(as);
157-
}
158-
};
154+
return as -> sumLeft(as);
159155
}
160156

161157
/**
@@ -164,11 +160,7 @@ public A f(final List<A> as) {
164160
* @return a function that sums the given values with right-fold.
165161
*/
166162
public F<List<A>, A> sumRight() {
167-
return new F<List<A>, A>() {
168-
public A f(final List<A> as) {
169-
return sumRight(as);
170-
}
171-
};
163+
return as -> sumRight(as);
172164
}
173165

174166
/**
@@ -177,11 +169,7 @@ public A f(final List<A> as) {
177169
* @return a function that sums the given values with left-fold.
178170
*/
179171
public F<Stream<A>, A> sumLeftS() {
180-
return new F<Stream<A>, A>() {
181-
public A f(final Stream<A> as) {
182-
return sumLeft(as);
183-
}
184-
};
172+
return as -> sumLeft(as);
185173
}
186174

187175
/**

core/src/main/java/fj/P.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ private P() {
1818
* @return A function that puts an element in a product-1.
1919
*/
2020
public static <A> F<A, P1<A>> p1() {
21-
return new F<A, P1<A>>() {
22-
public P1<A> f(final A a) {
23-
return p(a);
24-
}
25-
};
21+
return a -> p(a);
2622
}
2723

2824
/**

core/src/main/java/fj/P3.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,7 @@ public C _3() {
152152
* @return A function that returns the first element of a product.
153153
*/
154154
public static <A, B, C> F<P3<A, B, C>, A> __1() {
155-
return new F<P3<A, B, C>, A>() {
156-
public A f(final P3<A, B, C> p) {
157-
return p._1();
158-
}
159-
};
155+
return p -> p._1();
160156
}
161157

162158
/**
@@ -165,11 +161,7 @@ public A f(final P3<A, B, C> p) {
165161
* @return A function that returns the second element of a product.
166162
*/
167163
public static <A, B, C> F<P3<A, B, C>, B> __2() {
168-
return new F<P3<A, B, C>, B>() {
169-
public B f(final P3<A, B, C> p) {
170-
return p._2();
171-
}
172-
};
164+
return p -> p._2();
173165
}
174166

175167
/**
@@ -178,11 +170,7 @@ public B f(final P3<A, B, C> p) {
178170
* @return A function that returns the third element of a product.
179171
*/
180172
public static <A, B, C> F<P3<A, B, C>, C> __3() {
181-
return new F<P3<A, B, C>, C>() {
182-
public C f(final P3<A, B, C> p) {
183-
return p._3();
184-
}
185-
};
173+
return p -> p._3();
186174
}
187175

188176
@Override

core/src/main/java/fj/P4.java

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -212,11 +212,7 @@ public D _4() {
212212
* @return A function that returns the first element of a product.
213213
*/
214214
public static <A, B, C, D> F<P4<A, B, C, D>, A> __1() {
215-
return new F<P4<A, B, C, D>, A>() {
216-
public A f(final P4<A, B, C, D> p) {
217-
return p._1();
218-
}
219-
};
215+
return p -> p._1();
220216
}
221217

222218
/**
@@ -225,11 +221,7 @@ public A f(final P4<A, B, C, D> p) {
225221
* @return A function that returns the second element of a product.
226222
*/
227223
public static <A, B, C, D> F<P4<A, B, C, D>, B> __2() {
228-
return new F<P4<A, B, C, D>, B>() {
229-
public B f(final P4<A, B, C, D> p) {
230-
return p._2();
231-
}
232-
};
224+
return p -> p._2();
233225
}
234226

235227
/**
@@ -238,11 +230,7 @@ public B f(final P4<A, B, C, D> p) {
238230
* @return A function that returns the third element of a product.
239231
*/
240232
public static <A, B, C, D> F<P4<A, B, C, D>, C> __3() {
241-
return new F<P4<A, B, C, D>, C>() {
242-
public C f(final P4<A, B, C, D> p) {
243-
return p._3();
244-
}
245-
};
233+
return p -> p._3();
246234
}
247235

248236
/**
@@ -251,11 +239,7 @@ public C f(final P4<A, B, C, D> p) {
251239
* @return A function that returns the fourth element of a product.
252240
*/
253241
public static <A, B, C, D> F<P4<A, B, C, D>, D> __4() {
254-
return new F<P4<A, B, C, D>, D>() {
255-
public D f(final P4<A, B, C, D> p) {
256-
return p._4();
257-
}
258-
};
242+
return p -> p._4();
259243
}
260244

261245
@Override

core/src/main/java/fj/P5.java

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -278,11 +278,7 @@ public E _5() {
278278
* @return A function that returns the first element of a product.
279279
*/
280280
public static <A, B, C, D, E> F<P5<A, B, C, D, E>, A> __1() {
281-
return new F<P5<A, B, C, D, E>, A>() {
282-
public A f(final P5<A, B, C, D, E> p) {
283-
return p._1();
284-
}
285-
};
281+
return p -> p._1();
286282
}
287283

288284
/**
@@ -291,11 +287,7 @@ public A f(final P5<A, B, C, D, E> p) {
291287
* @return A function that returns the second element of a product.
292288
*/
293289
public static <A, B, C, D, E> F<P5<A, B, C, D, E>, B> __2() {
294-
return new F<P5<A, B, C, D, E>, B>() {
295-
public B f(final P5<A, B, C, D, E> p) {
296-
return p._2();
297-
}
298-
};
290+
return p -> p._2();
299291
}
300292

301293
/**
@@ -304,11 +296,7 @@ public B f(final P5<A, B, C, D, E> p) {
304296
* @return A function that returns the third element of a product.
305297
*/
306298
public static <A, B, C, D, E> F<P5<A, B, C, D, E>, C> __3() {
307-
return new F<P5<A, B, C, D, E>, C>() {
308-
public C f(final P5<A, B, C, D, E> p) {
309-
return p._3();
310-
}
311-
};
299+
return p -> p._3();
312300
}
313301

314302
/**
@@ -317,11 +305,7 @@ public C f(final P5<A, B, C, D, E> p) {
317305
* @return A function that returns the fourth element of a product.
318306
*/
319307
public static <A, B, C, D, E> F<P5<A, B, C, D, E>, D> __4() {
320-
return new F<P5<A, B, C, D, E>, D>() {
321-
public D f(final P5<A, B, C, D, E> p) {
322-
return p._4();
323-
}
324-
};
308+
return p -> p._4();
325309
}
326310

327311
/**
@@ -330,11 +314,7 @@ public D f(final P5<A, B, C, D, E> p) {
330314
* @return A function that returns the fifth element of a product.
331315
*/
332316
public static <A, B, C, D, E> F<P5<A, B, C, D, E>, E> __5() {
333-
return new F<P5<A, B, C, D, E>, E>() {
334-
public E f(final P5<A, B, C, D, E> p) {
335-
return p._5();
336-
}
337-
};
317+
return p -> p._5();
338318
}
339319

340320
@Override

0 commit comments

Comments
 (0)