API / JavaScript / Js / Vector


Provide vector utilities.

type t('a) = array('a);
let filterInPlace: ((. 'a) => bool, t('a)) => unit;

p : predicate a : array

let empty: t('a) => unit;
let pushBack: ('a, t('a)) => unit;
let copy: t('a) => t('a);

Create a shallow copy of a vector.

let memByRef: ('a, t('a)) => bool;

Find by JS (===) equality.

let iter: ((. 'a) => unit, t('a)) => unit;
let iteri: ((. int, 'a) => unit, t('a)) => unit;
let toList: t('a) => list('a);
let map: ((. 'a) => 'b, t('a)) => t('b);
let mapi: ((. int, 'a) => 'b, t('a)) => t('b);
let foldLeft: ((. 'a, 'b) => 'a, 'a, t('b)) => 'a;
let foldRight: ((. 'b, 'a) => 'a, t('b), 'a) => 'a;
let length: t('a) => int;

Return the length (number of elements) of the given array.

let get: (t('a), int) => 'a;

Vector.get(a, n) returns the element number n of vector a. The first element has number 0. The last element has number Vector.length(a) - 1. You can also write a[n] instead of Vector.get(a, n). Raise Invalid_argument "index out of bounds" if n is outside the range 0 to (Array.length(a) - 1).

let set: (t('a), int, 'a) => unit;

Vector.set(a, n, x) modifies vector a in place, replacing element number n with x. Raise Invalid_argument "index out of bounds" if n is outside the range 0 to Array.length(a) - 1.

let make: (int, 'a) => t('a);

Vector.make(n, x) returns a fresh vector of length n, initialized with x. All the elements of this new vector are initially physically equal to x (in the sense of the == predicate). Consequently, if x is mutable, it is shared among all elements of the array, and modifying x through one of the array entries will modify all other entries at the same time. Raise Invalid_argument if n < 0 or n > Sys.max_array_length. If the value of x is a floating-point number, then the maximum size is only Sys.max_array_length / 2.

let init: (int, (. int) => 'a) => t('a);

Raises RangeError when n is negative. n : size

let append: ('a, t('a)) => t('a);

append(x, a) returns a fresh vector with x appended to a.

let unsafe_get: (t('a), int) => 'a;
let unsafe_set: (t('a), int, 'a) => unit;