Skip to content

functional-data-structure/persistent

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 ) ;

NPM license NPM version Bower version Build Status Coverage Status Dependencies Status devDependencies Status Code Climate NPM downloads per month GitHub issues Inline docs

Can be managed through jspm, duo, component, bower, ender, jam, spm, and npm.

Install

jspm

jspm install github:aureooms/js-persistent
# or
jspm install npm:aureooms-js-persistent

duo

No install step needed for duo!

component

component install aureooms/js-persistent

bower

bower install aureooms-js-persistent

ender

ender add aureooms-js-persistent

jam

jam install aureooms-js-persistent

spm

spm install aureooms-js-persistent --save

npm

npm install aureooms-js-persistent --save

Require

jspm

let persistent = require( "github:aureooms/js-persistent" ) ;
// or
import persistent from 'aureooms-js-persistent' ;

duo

let persistent = require( "aureooms/js-persistent" ) ;

component, ender, spm, npm

let persistent = require( "aureooms-js-persistent" ) ;

bower

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.

jam

require( [ "aureooms-js-persistent" ] , function ( persistent ) { ... } ) ;

Children

This package has several children:

Use

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

References