函数式编程
高阶函数
高阶函数是指能够接收函数作为参数或者返回函数的函数。
typescript
function add(x: number, y: number): number {
return x + y;
}
function multiply(x: number, y: number): number {
return x * y;
}
const addThenMultiply = (x: number, y: number, z: number) => multiply(add(x, y), z);
console.log(addThenMultiply(2, 3, 4)); // 14柯里化
柯里化是指将一个多参数函数转换成一系列单参数函数的过程。
typescript
function add(x: number, y: number): number {
return x + y;
}
const addCurried = (x: number) => (y: number) => add(x, y);
console.log(addCurried(2)(3)); // 5函数组合
函数组合是指将多个函数组合成一个新的函数的过程。
typescript
function add(x: number, y: number): number {
return x + y;
}
function multiply(x: number, y: number): number {
return x * y;
}
const addThenMultiply = (x: number, y: number, z: number) => multiply(add(x, y), z);
const addThenMultiplyCurried = (x: number) => (y: number) => (z: number) => addThenMultiply(x, y, z);
console.log(addThenMultiplyCurried(2)(3)(4)); // 14