The sequenced array class which maintains sorted order with time complexity O(logN)
Fluid protocol definitions
Array manipulation, ordering, searching, summarizing, etc.
A simple list of possible Typed Array names.
Which kind of Typed Array is this JavaScript value? Works cross-realm, without `instanceof`, and despite Symbol.toStringTag.
Is this value a JS ArrayBuffer?
An ES7/ES2016 spec-compliant `Array.prototype.includes` shim/polyfill/replacement that works as far down as ES3.
Get the byte length of an ArrayBuffer, even in engines without a `.byteLength` method.
Is this value a JS SharedArrayBuffer?
Robustly get the byte offset of a Typed Array
Robustly get the length of a Typed Array
`Array.prototype.concat`, but made safe by ignoring Symbol.isConcatSpreadable
Robustly get the byte length of a Typed Array
Get the ArrayBuffer out of a TypedArray, robustly.
Is this value a JS Typed Array? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and despite ES6 Symbol.toStringTag.
General purpose glob-based configuration matching.
Parse postgres array columns
Run an array of functions in parallel
Flatten nested arrays
TypeScript definitions for d3-array
Guarantees an array back
Matches strings against configurable strings, globs, regular expressions, and/or functions
Create an array of unique values, in order, from the input arrays
Workaround a Safari bug where rest destructuring with an array literal on the rhs can yield incorrect results
sprial an array of numbers 1-20
Takes `[:one, :two, :three]` and convert it to `{one: :two, two: :three}`
A Ruby Gem used for calculating a consensus (most frequent) DNA sequence from an array of ALIGNED sequences. Useful for bioinformatics pipelines to create a reference sequence when using another sequence aligning utility. Also, helpful in finding consensus regions for primer design or viral genotyping.
Library to perform different operations with permutations of sequences (strings, arrays, etc.)
Chained job allows you to define an array of queued jobs that should be run in sequence after the main job has been executed successfully.
Implements Hadamard- and sequency-ordered Fast Walsh Transforms as extensions of class Array. Adds a boolean power_of_2? method to class Integer.
This gem adds `#to_proc` method to Array, which works similarly to Symbol#to_proc, but calls provided methods in sequence.
Groups consecutive monotonic sequences in arrays into ranges. Supports any Comparable type with succ method.
Sequence provides a unified api for access to sequential data types, like Strings, Arrays, Files, IOs, and Enumerations. This is the external iterator pattern (ruby's usual iterators are internal). Each sequence encapsulates some data and a current position within it. Some operations apply to data at (or relative to) the position, others are independant of position. The api contains operations for moving the position, and reading and writing data (with or without moving the position) forward or backward from the current position or anywhere. Its perhaps most unusual feature is the ability to scan for Regexps in not just Strings, but Files and any other type of sequence.
Iterate over multiple enumerators in parallel, using the external interface based on the #next method. Each call to #next returns an array, containing the next element for each of the enumerators. A StopIteration exception is raised as soon as any of the enumerators runs out of elements. SyncEnum differs from the standard library's REXML::SyncEnumerator in its use of the #next external iterator interface, while REXML::SyncEnumerator uses an #each internal iterator interface. The external interface is more convenient when you expect to end iteration before reaching the end of any of the enumerations, including cases where an enumerator generates an unending sequence.
In computer science, a disjoint-set data structure, also called a union–find data structure or merge–find set, is a data structure that keeps track of a set of elements partitioned into a number of disjoint (non-overlapping) subsets. It provides near-constant-time operations (bounded by the inverse Ackermann function) to add new sets, to merge existing sets, and to determine whether elements are in the same set. In addition to many other uses (see the Applications section), disjoint-sets play a key role in Kruskal's algorithm for finding the minimum spanning tree of a graph. A disjoint-set forest consists of a number of elements each of which stores an id, a parent pointer, and, in efficient algorithms, a value called the "rank". The parent pointers of elements are arranged to form one or more trees, each representing a set. If an element's parent pointer points to no other element, then the element is the root of a tree and is the representative member of its set. A set may consist of only a single element. However, if the element has a parent, the element is part of whatever set is identified by following the chain of parents upwards until a representative element (one without a parent) is reached at the root of the tree. Forests can be represented compactly in memory as arrays in which parents are indicated by their array index. Disjoint-set data structures model the partitioning of a set, for example to keep track of the connected components of an undirected graph. This model can then be used to determine whether two vertices belong to the same component, or whether adding an edge between them would result in a cycle. The Union–Find algorithm is used in high-performance implementations of unification. This data structure is used by the Boost Graph Library to implement its Incremental Connected Components functionality. It is also a key component in implementing Kruskal's algorithm to find the minimum spanning tree of a graph. Note that the implementation as disjoint-set forests doesn't allow the deletion of edges, even without path compression or the rank heuristic. Sharir and Agarwal report connections between the worst-case behavior of disjoint-sets and the length of Davenport–Schinzel sequences, a combinatorial structure from computational geometry.