22
33[ ![ Build Status] ( https://travis-ci.org/qiao/immutable-sequence.js.svg?branch=master )] ( https://travis-ci.org/qiao/immutable-sequence.js )
44
5- Implementation of Immutable Sequence in JavaScript, based on [ Finger Tree] ( https://github.com/qiao/fingertree.js ) .
5+ High performance implementation of Immutable Sequence in JavaScript, based on [ Finger Tree] ( https://github.com/qiao/fingertree.js ) .
66
77## Installation (Node.js)
88
@@ -19,6 +19,54 @@ var ImmutableSequence = require('immutable-sequence');
1919## Quick Examples
2020
2121``` javascript
22+ // Empty sequence
23+ var seq = ImmutableSequence .fromArray ([]);
24+ seq .isEmpty (); // true
25+ seq .size (); // 0
26+ seq .peekFirst (); // null
27+ seq .peekLast (); // null
28+ seq .get (0 ); // throws error
29+
30+ // Nonempty sequence
31+ seq = ImmutableSequence .fromArray ([' a' , ' b' , ' c' ]);
32+ seq .isEmpty (); // false
33+ seq .size (); // 3
34+ seq .peekFirst (); // 'a'
35+ seq .peekLast (); // 'b'
36+ seq .get (0 ); // 'a'
37+ seq .get (2 ); // 'c'
38+
39+ // Add and remove
40+ var seq2 = seq .addFirst (' 1' );
41+ seq2 .size (); // 4
42+ seq2 .peekFirst (); // '1'
43+
44+ var seq3 = seq .removeFirst ();
45+ seq3 .size (); // 2
46+ seq3 .peekFirst (); // 'b'
47+
48+ var seq4 = seq .addLast (' d' );
49+ seq4 .peekLast (); // 'd'
50+
51+ var seq5 = seq .removeLast ();
52+ seq5 .peekLast (); // 'b'
53+
54+ // Concatenate two sequences
55+ var a = ImmutableSequence .fromArray ([1 , 2 , 3 ]);
56+ var b = ImmutableSequence .fromArray ([4 , 5 , 6 ]);
57+ var c = a .concat (b);
58+ c .size (); // 6
59+ c .peekFirst (); // 1
60+ c .peekLast (); // 6
61+
62+ // Split into two sequences at given index
63+ seq = ImmutableSequence .fromArray ([' a' , ' b' , ' c' ]);
64+ var split = seq .splitAt (1 );
65+ split[0 ].size (); // 1
66+ split[0 ].peekFirst (); // 'a'
67+ split[1 ].size (); // 2
68+ split[1 ].peekFirst (); // 'b'
69+ split[1 ].peekLast (); // 'c'
2270```
2371
2472
0 commit comments