(start: number, end: number): NonEmptyArray<number>Creates a NonEmptyArray containing a range of integers, inclusive on both
ends.
When to use
Use when you need a non-empty sequence of consecutive integers.
Details
If start > end, returns [start].
Example (Creating a range)
import { Array } from "effect"
const result = Array.range(1, 3)
console.log(result) // [1, 2, 3]export const const range: (
start: number,
end: number
) => NonEmptyArray<number>
Creates a NonEmptyArray containing a range of integers, inclusive on both
ends.
When to use
Use when you need a non-empty sequence of consecutive integers.
Details
If start > end, returns [start].
Example (Creating a range)
import { Array } from "effect"
const result = Array.range(1, 3)
console.log(result) // [1, 2, 3]
range = (start: numberstart: number, end: numberend: number): type NonEmptyArray<A> = [A, ...A[]]A mutable array guaranteed to have at least one element.
When to use
Use when mutation is acceptable and non-emptiness must be tracked at the type
level.
Details
This is the mutable counterpart of
NonEmptyReadonlyArray
. Most Array
module functions return NonEmptyArray when the result is guaranteed
non-empty.
Example (Typing a mutable non-empty array)
import type { Array } from "effect"
const nonEmpty: Array.NonEmptyArray<number> = [1, 2, 3]
nonEmpty.push(4)
NonEmptyArray<number> =>
start: numberstart <= end: numberend ? const makeBy: {
<A>(f: (i: number) => A): (
n: number
) => NonEmptyArray<A>
<A>(
n: number,
f: (i: number) => A
): NonEmptyArray<A>
}
makeBy(end: numberend - start: numberstart + 1, (i: numberi) => start: numberstart + i: numberi) : [start: numberstart]