You are currently looking at the < v8.2.0 docs (Reason v3.6 syntax edition). You can find the latest API docs here.
(These docs cover all versions between v3 to v8 and are equivalent to the old BuckleScript docs before the rebrand)
Range
A small utility module to provide inclusive range operations for [start,
finish]
. Internally it is relying on loops instead of creating new arrays,
which makes it pretty performant and memory friendly.
forEachU
let forEachU: (int, int, [@bs] (int => unit)) => unit;
forEach
let forEach: (int, int, int => unit) => unit;
forEach(start, finish, action);
equivalent to Belt.Array.(forEach(range(start, finish), action));
REBelt.Range.forEach(0, 4, (i) => Js.log(i));
/**
* prints:
* 0
* 1
* 2
* 3
* 4
*/
everyU
let everyU: (int, int, [@bs] (int => bool)) => bool;
every
let every: (int, int, int => bool) => bool;
every(start, finish, p);
equivalent to Belt.Array.(every(range(start, finish), p));
REBelt.Range.every(0, 4, (i) => i < 5); /* true */
Belt.Range.every(0, 4, (i) => i < 4); /* false */
everyByU
let everyByU: (int, int, ~step: int, [@bs] (int => bool)) => bool;
everyBy
let everyBy: (int, int, ~step: int, int => bool) => bool;
everyBy(start, finish, ~step, p);
See Belt_Array.rangeBy
equivalent to Belt.Array.(every(rangeBy(start, finish, ~step), p));
REBelt.Range.everyBy(0, 4, ~step=1, (i) => i mod 2 === 0); /* false */
Belt.Range.everyBy(0, 4, ~step=2, (i) => i mod 2 === 0); /* true */
someU
let someU: (int, int, [@bs] (int => bool)) => bool;
some
let some: (int, int, int => bool) => bool;
some(start, finish, p);
equivalent to Belt.Array.(some(range(start, finish), p));
REBelt.Range.some(0, 4, (i) => i > 5); /* false */
Belt.Range.some(0, 4, (i) => i > 2); /* true */
someByU
let someByU: (int, int, ~step: int, [@bs] (int => bool)) => bool;
someBy
let someBy: (int, int, ~step: int, int => bool) => bool;
someBy(start, finish, ~step, p);
See Belt_Array.rangeBy
equivalent to Belt.Array.(some(rangeBy(start, finish, ~step), p));
REBelt.Range.someBy(1, 5, ~step=2, (i) => i mod 2 === 0); /* false */
Belt.Range.someBy(0, 4, ~step=2, (i) => i mod 2 === 0); /* true */