From 89d1262a9d904a3074f37c764e5947c85144ac42 Mon Sep 17 00:00:00 2001 From: Ely De La Cruz <603428+elycruz@users.noreply.github.com> Date: Sat, 30 Jul 2022 13:38:03 -0400 Subject: [PATCH] #57 - Progress on converting all 'curry*' calls to idiomatic currying in 'list/utils/' module. --- packages/fjl/src/function/curry.ts | 3 +++ packages/fjl/src/list/utils/findIndexWhereRight.ts | 4 ++-- packages/fjl/src/list/utils/findIndicesWhere.ts | 4 ++-- packages/fjl/src/list/utils/findWhere.ts | 3 ++- packages/fjl/src/list/utils/findexIndexWhere.ts | 4 ++-- packages/fjl/src/list/utils/genericAscOrdering.ts | 5 ++--- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/fjl/src/function/curry.ts b/packages/fjl/src/function/curry.ts index 8ec6551e..749aa343 100644 --- a/packages/fjl/src/function/curry.ts +++ b/packages/fjl/src/function/curry.ts @@ -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'; diff --git a/packages/fjl/src/list/utils/findIndexWhereRight.ts b/packages/fjl/src/list/utils/findIndexWhereRight.ts index a62f1544..9702a85f 100644 --- a/packages/fjl/src/list/utils/findIndexWhereRight.ts +++ b/packages/fjl/src/list/utils/findIndexWhereRight.ts @@ -1,4 +1,3 @@ -import {curry, CurryOf2} from "../../function/curry"; import {length} from "../length"; import {PredForIndexable, Indexable} from "../../types"; @@ -21,6 +20,7 @@ export const /** * Curried version of `findIndexWhereRight`. */ - $findIndexWhereRight = curry(findIndexWhereRight) as CurryOf2 + $findIndexWhereRight = (pred: PredForIndexable) => + (arr: Indexable): number => findIndexWhereRight(pred, arr) ; diff --git a/packages/fjl/src/list/utils/findIndicesWhere.ts b/packages/fjl/src/list/utils/findIndicesWhere.ts index 50e76fc9..046a0577 100644 --- a/packages/fjl/src/list/utils/findIndicesWhere.ts +++ b/packages/fjl/src/list/utils/findIndicesWhere.ts @@ -1,4 +1,3 @@ -import {curry2, CurryOf2} from "../../function/curry"; import {Indexable, PredForIndexable} from "../../types"; import {length} from "../length"; @@ -22,6 +21,7 @@ export const /** * Curried version of `findIndicesWhere`. */ - $findIndicesWhere = curry2(findIndicesWhere) as CurryOf2 + $findIndicesWhere = (pred: PredForIndexable) => + (xs: Indexable): number[] | undefined => findIndicesWhere(pred, xs) ; diff --git a/packages/fjl/src/list/utils/findWhere.ts b/packages/fjl/src/list/utils/findWhere.ts index ccb15863..9bcc64b0 100644 --- a/packages/fjl/src/list/utils/findWhere.ts +++ b/packages/fjl/src/list/utils/findWhere.ts @@ -25,6 +25,7 @@ export const /** * Curried version of `findWhere`. */ - $findWhere = curry(findWhere) as CurryOf2, Indexable, any | undefined> + $findWhere = (pred: PredForIndexable) => + (xs: Indexable): T | undefined => findWhere(pred, xs) ; diff --git a/packages/fjl/src/list/utils/findexIndexWhere.ts b/packages/fjl/src/list/utils/findexIndexWhere.ts index a1d3d6f5..1c013b30 100644 --- a/packages/fjl/src/list/utils/findexIndexWhere.ts +++ b/packages/fjl/src/list/utils/findexIndexWhere.ts @@ -1,4 +1,3 @@ -import {curry, CurryOf2} from "../../function/curry"; import {PredForIndexable, Indexable} from "../../types"; import {length} from "../length"; @@ -22,6 +21,7 @@ export const /** * Curried version of `findIndexWhere`. */ - $findIndexWhere = curry(findIndexWhere) as CurryOf2 + $findIndexWhere = (pred: PredForIndexable) => + (xs: Indexable): number => findIndexWhere(pred, xs) ; diff --git a/packages/fjl/src/list/utils/genericAscOrdering.ts b/packages/fjl/src/list/utils/genericAscOrdering.ts index c7996f8a..db928ce2 100644 --- a/packages/fjl/src/list/utils/genericAscOrdering.ts +++ b/packages/fjl/src/list/utils/genericAscOrdering.ts @@ -1,5 +1,3 @@ -import {curry, CurryOf2} from "../../function/curry"; - export type OrderingFunc = (a: T, b: T) => number; export const @@ -19,6 +17,7 @@ export const /** * Generic 'ascending order' ordering function (same type as function used in `[].sort` etc.). */ - $genericAscOrdering = curry(genericAscOrdering) as CurryOf2 + $genericAscOrdering = (a: T) => + (b: T): number => genericAscOrdering(a, b) ;