| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /home/bitnami/htdocs/app/node_modules/rope-sequence/ |
Upload File : |
# rope-sequence This module implements a single data type, `RopeSequence`, which is a persistent sequence type implemented as a loosely-balanced [rope](https://www.cs.rit.edu/usr/local/pub/jeh/courses/QUARTERS/FP/Labs/CedarRope/rope-paper.pdf). It supports appending, prepending, and slicing without doing a full copy. Random access is somewhat more expensive than in an array (logarithmic, with some overhead), but should still be relatively fast. Licensed under the MIT license. ## class `RopeSequence<T>` `static `**`from`**`(?union<[T], RopeSequence<T>>) → RopeSequence<T>` Create a rope representing the given array, or return the rope itself if a rope was given. `static `**`empty`**`: RopeSequence<T>` The empty rope. **`length`**`: number` The length of the rope. **`append`**`(union<[T], RopeSequence<T>>) → RopeSequence<T>` Append an array or other rope to this one, returning a new rope. **`prepend`**`(union<[T], RopeSequence<T>>) → RopeSequence<T>` Prepend an array or other rope to this one, returning a new rope. **`slice`**`(from: ?number = 0, to: ?number = this.length) → RopeSequence<T>` Create a rope repesenting a sub-sequence of this rope. **`get`**`(index: number) → T` Retrieve the element at the given position from this rope. **`forEach`**`(f: fn(element: T, index: number) → ?bool, from: ?number, to: ?number)` Call the given function for each element between the given indices. This tends to be more efficient than looping over the indices and calling `get`, because it doesn't have to descend the tree for every element. `to` may be less then `from`, in which case the iteration will happen in reverse (starting at index `from - 1`, down to index `to`. The iteration function may return `false` to abort iteration early. **`map`**`(f: fn(element: T, index: number) → U, from: ?number, to: ?number) → [U]` Map the given functions over the elements of the rope, producing a flat array. **`flatten`**`() → [T]` Return the content of this rope as an array.