Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
17
Task/Catamorphism/JavaScript/catamorphism-1.js
Normal file
17
Task/Catamorphism/JavaScript/catamorphism-1.js
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
|
||||
function add(a, b) {
|
||||
return a + b;
|
||||
}
|
||||
|
||||
var summation = nums.reduce(add);
|
||||
|
||||
function mul(a, b) {
|
||||
return a * b;
|
||||
}
|
||||
|
||||
var product = nums.reduce(mul, 1);
|
||||
|
||||
var concatenation = nums.reduce(add, "");
|
||||
|
||||
console.log(summation, product, concatenation);
|
||||
21
Task/Catamorphism/JavaScript/catamorphism-2.js
Normal file
21
Task/Catamorphism/JavaScript/catamorphism-2.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
(function (xs) {
|
||||
'use strict';
|
||||
|
||||
// foldl :: (b -> a -> b) -> b -> [a] -> b
|
||||
function foldl(f, acc, xs) {
|
||||
return xs.reduce(f, acc);
|
||||
}
|
||||
|
||||
// foldr :: (b -> a -> b) -> b -> [a] -> b
|
||||
function foldr(f, acc, xs) {
|
||||
return xs.reduceRight(f, acc);
|
||||
}
|
||||
|
||||
// Test folds in both directions
|
||||
return [foldl, foldr].map(function (f) {
|
||||
return f(function (acc, x) {
|
||||
return acc + (x * 2).toString() + ' ';
|
||||
}, [], xs);
|
||||
});
|
||||
|
||||
})([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
|
||||
5
Task/Catamorphism/JavaScript/catamorphism-3.js
Normal file
5
Task/Catamorphism/JavaScript/catamorphism-3.js
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
var nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
|
||||
console.log(nums.reduce((a, b) => a + b, 0)); // sum of 1..10
|
||||
console.log(nums.reduce((a, b) => a * b, 1)); // product of 1..10
|
||||
console.log(nums.reduce((a, b) => a + b, '')); // concatenation of 1..10
|
||||
Loading…
Add table
Add a link
Reference in a new issue