always
반환 타입: a -> b -> a
언제나 동일한 값을 반환한다.
const
라고 다른 언어에서 알려져 있다.
[1,2,3,4].map(always(0)) => [0,0,0,0]
curry
반환 타입: <TArgs extends any[], TReturn>(fn: (...args: TArgs) => TReturn): CurriedFn<TArgs, TReturn>
여러 인자를 받는 함수의 커리 버전이다.
타입스크립트에서 타입 유추가 가능하다.
const sum3 = (
x: number, y: number, z: number
) => x + y + z
const curriedSum3 = curry(sum3)
===
curriedSum3(1) // (y: number, z: number) => number
curriedSum3(1, 2) // (z: number) => number
curriedSum3(1, 2, 3) // number
curriedSum3(1)(2)(3) // number
curriedSum3(1, 2)(3) // number
compare
반환 타입: a -> b -> Order
and
오퍼레이터를 사용하여 두 값을 비교한다.
compare(1, 10) => Order.LT
compare('a', 'a') => Order.EQ
compare(10, 1) => Order.GT
orderToNumber
반환 타입: Order -> Int
비교(Array.prototype)를 수행할 때
표준 ECMAscript 라이브러리에서 예상하는 값에 Order 열거형을 매핑한다.
ex) sort 함수 등
orderToNumber(Order.LT) => -1
orderToNumber(Order.EQ) => 0
orderToNumber(Order.GT) => 1
'DEVELOPMENT > JAVASCRIPT' 카테고리의 다른 글
purify-ts / Either (0) | 2023.02.11 |
---|---|
purify-ts / Maybe (0) | 2023.02.10 |
tsconfig 설정에 대해 (0) | 2022.06.28 |