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
RElet forEachU: (int, int, [@bs] (int => unit)) => unit;
forEach
RElet 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
RElet everyU: (int, int, [@bs] (int => bool)) => bool;
every
RElet 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
RElet everyByU: (int, int, ~step: int, [@bs] (int => bool)) => bool;
everyBy
RElet 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
RElet someU: (int, int, [@bs] (int => bool)) => bool;
some
RElet 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
RElet someByU: (int, int, ~step: int, [@bs] (int => bool)) => bool;
someBy
RElet 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 */