2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -0,0 +1,49 @@
(function () {
'use strict';
// iterativeComposed :: [f] -> f
function iterativeComposed(fs) {
return function (x) {
var i = fs.length,
e = x;
while (i--) e = fs[i](e);
return e;
}
}
// foldComposed :: [f] -> f
function foldComposed(fs) {
return function (x) {
return fs
.reduceRight(function (a, f) {
return f(a);
}, x);
};
}
var sqrt = Math.sqrt,
succ = function (x) {
return x + 1;
},
half = function (x) {
return x / 2;
};
// Testing two different multiple composition ([f] -> f) functions
return [iterativeComposed, foldComposed]
.map(function (compose) {
// both functions compose from right to left
return compose([half, succ, sqrt])(5);
});
})();

View file

@ -0,0 +1,21 @@
(() => {
'use strict';
// compose :: [(a -> a)] -> (a -> a)
let compose = fs => x => fs.reduceRight((a, f) => f(a), x);
// TEST a composition of 3 functions (right to left)
let sqrt = Math.sqrt,
succ = x => x + 1,
half = x => x / 2;
return compose([half, succ, sqrt])(5);
// --> 1.618033988749895
})();