Skip to content

Commit b789be8

Browse files
committed
feat(array): add make
1 parent 408ee47 commit b789be8

File tree

3 files changed

+24
-0
lines changed

3 files changed

+24
-0
lines changed

src/Core__Array.mjs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ import * as Js_math from "rescript/lib/es6/js_math.js";
55
import * as Caml_option from "rescript/lib/es6/caml_option.js";
66
import * as Caml_splice_call from "rescript/lib/es6/caml_splice_call.js";
77

8+
function make(len, x) {
9+
if (len <= 0) {
10+
return [];
11+
}
12+
var arr = new Array(len);
13+
for(var i = 0; i < len; ++i){
14+
arr[i] = x;
15+
}
16+
return arr;
17+
}
18+
819
function init(len, f) {
920
if (len <= 0) {
1021
return [];
@@ -134,6 +145,7 @@ function findMap(arr, f) {
134145
}
135146

136147
export {
148+
make ,
137149
init ,
138150
indexOfOpt ,
139151
lastIndexOfOpt ,

src/Core__Array.res

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,17 @@ external fromArrayLikeWithMap: (Js.Array2.array_like<'a>, 'a => 'b) => array<'a>
1313
@val external fromIterator: Core__Iterator.t<'a> => array<'a> = "Array.from"
1414
@val external fromIteratorWithMap: (Core__Iterator.t<'a>, 'a => 'c) => array<'a> = "Array.from"
1515

16+
let make = (len, x) =>
17+
if len <= 0 {
18+
[]
19+
} else {
20+
let arr = makeUninitializedUnsafe(len)
21+
for i in 0 to len - 1 {
22+
arr->setUnsafe(i, x)
23+
}
24+
arr
25+
}
26+
1627
let init = (len, f) =>
1728
if len <= 0 {
1829
[]

src/Core__Array.resi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
external fromArrayLikeWithMap: (Js.Array2.array_like<'a>, 'a => 'b) => array<'a> = "Array.from"
66
@val external fromIterator: Core__Iterator.t<'a> => array<'a> = "Array.from"
77
@val external fromIteratorWithMap: (Core__Iterator.t<'a>, 'a => 'c) => array<'a> = "Array.from"
8+
let make: (int, 'a) => array<'a>
89
let init: (int, int => 'a) => array<'a>
910
@val external isArray: 'a => bool = "Array.isArray"
1011
@get external length: array<'a> => int = "length"

0 commit comments

Comments
 (0)