# 函数式编程

函数式编程的核心思想是封装,把复杂的任务拆分成一个个简单的函数。然后通过函数调用来实现你想要的功能。

这种做法和命令式编程写法是有很大差别的。

// 普通的技术方法
let data = [1,2,3,4,5]
let total = 0;
for (const n of data) {
    total += n;
}
// 平均值
let avg = total / data.length;

// 标准差
total = 0;
for (const n of data) {
    let deviation = n - avg;
    total += deviation * deviation;
}
let stdev = Math.sqrt(total / (data.length - 1));
console.log(avg)
console.log(stdev)

// 函数式编程
let sum = function(x, y) {return x + y}
let square = function (x) { return x * x }
avg = data.reduce(sum) / data.length
let deviations = data.map(function(x) { return x - avg });
stddev = Math.sqrt(deviations.map(square).reduce(sum) / (data.length - 1));
console.log(avg)
console.log(stddev)

每个函数只完成一小部分功能,通过函数之间的传递和调用组成自己想要的功能。

上次更新: 10/20/2020, 2:37:44 AM