数学…
数的定义
整数是正整数、零、负整数的集合
自然数是正整数、零
高阶函数
高阶函指使用其他函数作为参数、或者返回一个函数作为结果的函数。
柯里化函数、偏函数,都是妥妥的高阶函数!传入一个原函数,返回一个新函数。新函数继承了原函数的能力,又发展出不同的新能力!!
英语:Currying(果然是满满的英译中的既视感),是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| function add(x, y) { return x + y; }
function curryingAdd(x) { return function (y) { return x + y; }; }
add(1, 2); curryingAdd(1)(2);
|
偏函数是指固定一个函数的一个或者多个参数,返回一个新的函数,这个函数用于接受剩余的参数
1 2 3 4 5 6 7 8 9 10 11
| function add(a, b) { return a + b; }
function partial(fn, a) { return function (b) { return fn(a, b); }; } var parAdd = parital(add, 1); console.log(parAdd(2));
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| function cached(fn) { const cacheObj = Object.create(null);
return function cachedFn(str) { if (!cacheObj[str]) { let result = fn(str); cacheObj[str] = result; } return cacheObj[str]; }; }
const calculate = (num) => { const startTime = new Date(); for (let i = 0; i < num; i++) {} const endTime = new Date(); return endTime - startTime; };
let cashedCalculate = cached(calculate);
cashedCalculate(10_000_000_000);
|