Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -0,0 +1,31 @@
(function(n) {
// USING A LIST MONAD DIRECTLY, WITHOUT LIST COMPREHENSION NOTATION
return mb( rng(1, n), function(x) {
return mb( rng(1 + x, n), function(y) {
return mb( rng(1 + y, n), function(z) {
return ( x * x + y * y === z * z ) ? mReturn([x, y, z]) : [];
})})});
/******************************************************************/
// Monadic bind (chain) for lists
function mb(xs, f) {
return [].concat.apply([], xs.map(f));
}
// Monadic return (inject) for lists
function mReturn(a) {
return [a];
}
function rng(m, n) {
return Array.apply(null, Array(n - m + 1)).map(
function (x, i) { return m + i; }
);
}
})(100);