Persistent data structures code bricks for JavaScript. Parent is aureooms/js-data-structures.
let Seq = persistent.seq( fingertree.empty , SIZE ) ;
let Heap = persistent.heap( fingertree.empty , PRIO ) ;
let OrdSeq = persistent.ordseq( fingertree.empty , KEY ) ;
let IntervalTree = persistent.intervaltree( fingertree.empty , INTERVAL ) ;
Can be managed through jspm, duo, component, bower, ender, jam, spm, and npm.
jspm install github:aureooms/js-persistent
# or
jspm install npm:aureooms-js-persistent
No install step needed for duo!
component install aureooms/js-persistent
bower install aureooms-js-persistent
ender add aureooms-js-persistent
jam install aureooms-js-persistent
spm install aureooms-js-persistent --save
npm install aureooms-js-persistent --save
let persistent = require( "github:aureooms/js-persistent" ) ;
// or
import persistent from 'aureooms-js-persistent' ;
let persistent = require( "aureooms/js-persistent" ) ;
let persistent = require( "aureooms-js-persistent" ) ;
The script tag exposes the global variable persistent
.
<script src="bower_components/aureooms-js-persistent/js/dist/persistent.min.js"></script>
Alternatively, you can use any tool mentioned here.
require( [ "aureooms-js-persistent" ] , function ( persistent ) { ... } ) ;
This package has several children:
- aureooms/js-fingertree: finger trees code bricks for JavaScript
let measure = require( 'aureooms-js-measure' ) ;
let fingertree = require( 'aureooms-js-fingertree' ) ;
let Seq = persistent.seq( fingertree.empty , measure.Measures.SIZE ) ;
let Heap = persistent.heap( fingertree.empty , measure.Measures.PRIO ) ;
let OrdSeq = persistent.ordseq( fingertree.empty , measure.Measures.KEY ) ;
let IntervalTree = persistent.intervaltree( fingertree.empty , measure.Measures.INTERVAL ) ;
let seq = Seq.from( 'abc' ) ;
seq.get( 1 ) ; // 'b'
let heap = Heap.from( [ 1 , 3 , 2 ] ) ;
heap.extractMax( ) ; // [ 3 , Heap{1,2} ]
let ordseq = OrdSeq.from( 'abracadabra' ) ;
[ ...ordseq ] ; // aaaaabbcdrr
let intervaltree = IntervalTree.from( [ [ 1 , 5 ] , [ 4 , 9 ] ] ) ;
intervaltree.intervalSearch( [ -7 , 3 ] ) ; // [ 1 , 5 ]
intervaltree.intervalSearch( [ 7 , 12 ] ) ; // [ 4 , 9 ]
intervaltree.intervalSearch( [ 11 , 12 ] ) ; // null