Data update

This commit is contained in:
Ingy döt Net 2026-02-01 16:33:20 -08:00
parent 5150844a7d
commit 4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions

View file

@ -1,20 +0,0 @@
var f1 = function (x) { return x * 2; },
f2 = function (x) { return x * x; },
fs = function (f, s) {
return function (s) {
return s.map(f);
}
},
fsf1 = fs(f1),
fsf2 = fs(f2);
// Test
[
fsf1([0, 1, 2, 3]),
fsf2([0, 1, 2, 3]),
fsf1([2, 4, 6, 8]),
fsf2([2, 4, 6, 8])
]

View file

@ -1,21 +0,0 @@
var f1 = function (x) { return x * 2; },
f2 = function (x) { return x * x; },
fs = function (f) {
return function () {
return Array.prototype.slice.call(
arguments
).map(f);
}
},
fsf1 = fs(f1),
fsf2 = fs(f2);
// Test alternative approach, with arbitrary numbers of arguments
[
fsf1(0, 1, 2, 3, 4),
fsf2(0, 1, 2),
fsf1(2, 4, 6, 8, 10, 12),
fsf2(2, 4, 6, 8)
]

View file

@ -1,32 +0,0 @@
(() => {
'use strict';
// GENERIC FUNCTIONS ------------------------------------------------------
// curry :: ((a, b) -> c) -> a -> b -> c
const curry = f => a => b => f(a, b);
// map :: (a -> b) -> [a] -> [b]
const map = curry((f, xs) => xs.map(f));
// PARTIAL APPLICATION ----------------------------------------------------
const
f1 = x => x * 2,
f2 = x => x * x,
fs = map,
fsf1 = fs(f1),
fsf2 = fs(f2);
// TEST -------------------------------------------------------------------
return [
fsf1([0, 1, 2, 3]),
fsf2([0, 1, 2, 3]),
fsf1([2, 4, 6, 8]),
fsf2([2, 4, 6, 8])
];
})();

View file

@ -1,37 +0,0 @@
(() => {
'use strict';
// GENERIC FUNCTIONS ------------------------------------------------------
// 2 or more arguments
// curry :: Function -> Function
const curry = (f, ...args) => {
const go = xs => xs.length >= f.length ? (f.apply(null, xs)) :
function () {
return go(xs.concat(Array.from(arguments)));
};
return go([].slice.call(args, 1));
};
// map :: (a -> b) -> [a] -> [b]
const map = curry((f, xs) => xs.map(f));
// PARTIAL APPLICATION ----------------------------------------------------
const
f1 = x => x * 2,
f2 = x => x * x,
fs = map,
fsf1 = fs(f1),
fsf2 = fs(f2);
// TEST -------------------------------------------------------------------
return [
fsf1([0, 1, 2, 3]),
fsf2([0, 1, 2, 3]),
fsf1([2, 4, 6, 8]),
fsf2([2, 4, 6, 8])
];
})();