Skip to content

Commit

Permalink
#57 - Progress on converting all 'curry*' calls to idiomatic currying…
Browse files Browse the repository at this point in the history
… in 'list/utils/' module.
  • Loading branch information
elycruz committed Jul 30, 2022
1 parent ce970d9 commit 89d1262
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 10 deletions.
3 changes: 3 additions & 0 deletions packages/fjl/src/function/curry.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
* @author edlc
* @memberOf function
* @description Curry and CurryN functions.
* @deprecated Use idiomatic currying, when currying is required - `curry*` function defined here are actually doing
* something that is not really currying - forcing currying on argument tuple sets (`(a, b, c)`) - true currying applies
* each argument to a new function (`(a) => (b) => c`, etc.).
*/

import {UnitNary} from '../types';
Expand Down
4 changes: 2 additions & 2 deletions packages/fjl/src/list/utils/findIndexWhereRight.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import {curry, CurryOf2} from "../../function/curry";
import {length} from "../length";
import {PredForIndexable, Indexable} from "../../types";

Expand All @@ -21,6 +20,7 @@ export const
/**
* Curried version of `findIndexWhereRight`.
*/
$findIndexWhereRight = curry(findIndexWhereRight) as CurryOf2<PredForIndexable, Indexable, number>
$findIndexWhereRight = <T>(pred: PredForIndexable<T>) =>
(arr: Indexable<T>): number => findIndexWhereRight(pred, arr)

;
4 changes: 2 additions & 2 deletions packages/fjl/src/list/utils/findIndicesWhere.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import {curry2, CurryOf2} from "../../function/curry";
import {Indexable, PredForIndexable} from "../../types";
import {length} from "../length";

Expand All @@ -22,6 +21,7 @@ export const
/**
* Curried version of `findIndicesWhere`.
*/
$findIndicesWhere = curry2(findIndicesWhere) as CurryOf2<PredForIndexable, Indexable, number[] | undefined>
$findIndicesWhere = <T>(pred: PredForIndexable<T>) =>
(xs: Indexable<T>): number[] | undefined => findIndicesWhere(pred, xs)

;
3 changes: 2 additions & 1 deletion packages/fjl/src/list/utils/findWhere.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export const
/**
* Curried version of `findWhere`.
*/
$findWhere = curry(findWhere) as CurryOf2<PredForIndexable<any>, Indexable<any>, any | undefined>
$findWhere = <T>(pred: PredForIndexable<T>) =>
(xs: Indexable<T>): T | undefined => findWhere(pred, xs)

;
4 changes: 2 additions & 2 deletions packages/fjl/src/list/utils/findexIndexWhere.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import {curry, CurryOf2} from "../../function/curry";
import {PredForIndexable, Indexable} from "../../types";
import {length} from "../length";

Expand All @@ -22,6 +21,7 @@ export const
/**
* Curried version of `findIndexWhere`.
*/
$findIndexWhere = curry(findIndexWhere) as CurryOf2<PredForIndexable, Indexable, number>
$findIndexWhere = <T>(pred: PredForIndexable<T>) =>
(xs: Indexable<T>): number => findIndexWhere(pred, xs)

;
5 changes: 2 additions & 3 deletions packages/fjl/src/list/utils/genericAscOrdering.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
import {curry, CurryOf2} from "../../function/curry";

export type OrderingFunc<T> = (a: T, b: T) => number;

export const
Expand All @@ -19,6 +17,7 @@ export const
/**
* Generic 'ascending order' ordering function (same type as function used in `[].sort` etc.).
*/
$genericAscOrdering = curry(genericAscOrdering) as CurryOf2<any, any, number>
$genericAscOrdering = <T>(a: T) =>
(b: T): number => genericAscOrdering(a, b)

;

0 comments on commit 89d1262

Please sign in to comment.