restructure code a bit, add comparison functions for primitive types and composed types (needed to put values in sets)
This commit is contained in:
parent
3978f7f835
commit
8653bb99c6
12 changed files with 175 additions and 64 deletions
|
|
@ -3,6 +3,7 @@ import { newLiteral, transform, read, getReadDependencies, verifyValue } from ".
|
|||
import { merge, merge2, newSlot, overwrite } from "../versioning/slot.js";
|
||||
import createRBTree from "functional-red-black-tree";
|
||||
import { add, emptySet, RBTreeWrapper } from "../structures/set.js";
|
||||
import { compareNumbers } from "../compare/primitives.js";
|
||||
|
||||
const inc = x => x + 1;
|
||||
|
||||
|
|
@ -58,14 +59,8 @@ const sixSlot = overwrite(fiveSlot)(newLiteral(6));
|
|||
const sevenSlot = overwrite(fiveSlot)(newLiteral(7));
|
||||
const eightSlot = overwrite(fiveSlot)(newLiteral(8));
|
||||
|
||||
const numCompare = x => y => {
|
||||
if (typeof(x) !== 'number' || typeof(y) !== 'number') {
|
||||
throw new Error(`was only meant to compare numbers! got ${x} and ${y}`);
|
||||
}
|
||||
return (x < y) ? -1 : (x > y) ? 1 : 0;
|
||||
};
|
||||
const intMerge = merge(numCompare);
|
||||
const intMerge2 = merge2(numCompare);
|
||||
const intMerge = merge(compareNumbers);
|
||||
const intMerge2 = merge2(compareNumbers);
|
||||
|
||||
const sixSevenSlot = intMerge(sixSlot)(sevenSlot);
|
||||
const sevenEightSlot = intMerge(sevenSlot)(eightSlot);
|
||||
|
|
@ -83,13 +78,6 @@ console.log(pretty({sixSevenEightSlot}));
|
|||
// console.log("## Heterogeneous data ##");
|
||||
// console.log("########################");
|
||||
|
||||
// const strCompare = x => y => {
|
||||
// if (typeof(x) !== 'string' || typeof(y) !== 'string') {
|
||||
// throw new Error(`was only meant to compare strings! got ${x} and ${y}`);
|
||||
// }
|
||||
// return (x < y) ? -1 : (x > y) ? 1 : 0;
|
||||
// };
|
||||
|
||||
// // Slot<Int>
|
||||
// const numberOfSheepSlot = newSlot(Symbol('numberOfSheep'))(newLiteral(5));
|
||||
// const alternativeNumberOfSheepSlot = newSlot(Symbol('alternativeNumberOfSheep'))(newLiteral(6));
|
||||
|
|
@ -108,7 +96,7 @@ console.log(pretty({sixSevenEightSlot}));
|
|||
// transform(read(labelSlot))(combineFn)));
|
||||
|
||||
// console.log(
|
||||
// add(add(emptySet(compareSlots(strCompare)))(labelAndValueSlotA))(labelAndValueSlotB)
|
||||
// add(add(emptySet(compareSlots(compareStrings)))(labelAndValueSlotA))(labelAndValueSlotB)
|
||||
// );
|
||||
|
||||
// merge()(labelSlot)(labelAndValueSlot)
|
||||
|
|
@ -119,4 +107,9 @@ console.log("## RB Tree ##")
|
|||
console.log("#############")
|
||||
|
||||
// just a small experiment
|
||||
console.log(new RBTreeWrapper(createRBTree().insert(1).insert(1).insert(2)));
|
||||
console.log(
|
||||
createRBTree()
|
||||
.insert(1)
|
||||
.insert(1)
|
||||
.insert(2)
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue