Skip to content

Instantly share code, notes, and snippets.

View kaw2k's full-sized avatar

Rasa Welcher kaw2k

View GitHub Profile
function listNode(value, next) {
return {
value: value,
next: next
};
}
var three = listNode(3);
var two = listNode(2, three);
var one = listNode(1, two);
var linkedList = listNode(1, listNode(2, listNode( 3)));
linkedList.map(function(x) {
return x + 1;
});
// listNode(2, listNode(3, listNode( 4)));
function treeNode(value, left, right) {
return {
value: value,
left: left,
right: right
};
}
var myTree = treeNode(1, treeNode(2), treeNode(3));
function treeNode(value, left, right) {
return {
value: value,
left: left,
right: right,
map: function(transformation) {
var nextValue = transformation(nextValue);
var nextLeft;
if (left) nextLeft = left.map(transformation);
var tree = treeNode(1, treeNode(2), treeNode(3));
tree.map(function(x) {
return x + 1;
});
// treeNode(2, treeNode(3), treeNode(4))
function identity(x) { return x; }
[1, 2, 3].map(identity);
// [1, 2, 3]
listNode(1, listNode(2, listNode(3))).map(identity);
// listNode(1, listNode(2, listNode(3)))
treeNode(1, treeNode(2), treeNode(3)).map(identity);
// treeNode(1, treeNode(2), treeNode(3))
function addOneAndMultiplyTwo(x) { return multiplyTwo(addOne(x)); }
[1, 2, 3].map(addOneAndMultiplyTwo);
listNode(1, listNode(2, listNode(3))).map(addOneAndMultiplyTwo);
treeNode(1, treeNode(2), treeNode(3)).map(addOneAndMultiplyTwo);
function map(transformation, data) {
return data.map(transformation);
}
map(addOne, [1, 2, 3]);
map(addOne, listNode(1, listNode(2, listNode(3))));
map(addOne, treeNode(1, treeNode(2), treeNode(3)));
const { find, identity, toPairs, compose, map, curry } = require('ramda');
/* tslint:disable: no-any */
type AnyType = any;
/* tslint:enable: no-any */
type TComparator = (a: AnyType, b: AnyType) => number;
type TObjectComparator = {
[key: string]: TComparator;