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
Deprecated
Use forEach
instead
let forEachU: (int, int, int => unit) => unit
forEach
let forEach: (int, int, int => unit) => unit
forEach(start, finish, action)
equivalent to Belt.Array.forEach(Belt.Array.range(start, finish), action))
Examples
RESCRIPTBelt.Range.forEach(0, 4, (i) => Js.log(i))
// Prints:
// 0
// 1
// 2
// 3
// 4
everyU
Deprecated
Use every
instead
let everyU: (int, int, int => bool) => bool
every
let every: (int, int, int => bool) => bool
every(start, finish, p)
equivalent to Belt.Array.every(Belt.Array.range(start, finish), p)
Examples
RESCRIPTassertEqual(Belt.Range.every(0, 4, (i) => i < 5), true)
assertEqual(Belt.Range.every(0, 4, (i) => i < 4), false)
everyByU
Deprecated
Use everyBy
instead
let everyByU: (int, int, ~step: int, 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(Belt.Array.rangeBy(start, finish, ~step), p)
Examples
RESCRIPTassertEqual(Belt.Range.everyBy(0, 4, ~step=1, (i) => mod(i, 2) === 0), false)
assertEqual(Belt.Range.everyBy(0, 4, ~step=2, (i) => mod(i, 2) === 0), true)
someU
Deprecated
Use some
instead
let someU: (int, int, int => bool) => bool
some
let some: (int, int, int => bool) => bool
some(start, finish, p)
equivalent to Belt.Array.some(Belt.Array.range(start, finish), p)
Examples
RESCRIPTassertEqual(Belt.Range.some(0, 4, (i) => i > 5), false)
assertEqual(Belt.Range.some(0, 4, (i) => i > 2), true)
someByU
Deprecated
Use someBy
instead
let someByU: (int, int, ~step: int, 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(Belt.Array.rangeBy(start, finish, ~step), p)
Examples
RESCRIPTassertEqual(Belt.Range.someBy(1, 5, ~step=2, (i) => mod(i, 2) === 0), false)
assertEqual(Belt.Range.someBy(0, 4, ~step=2, (i) => mod(i, 2) === 0), true)