Skip to content

函数式编程

高阶函数

高阶函数是指能够接收函数作为参数或者返回函数的函数。

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