bs-platform
Version:
ReScript compiler, OCaml standard libary by ReScript and its required runtime support
141 lines (117 loc) • 1.89 kB
JavaScript
function filterInPlace(p, a) {
var i = 0;
var j = 0;
while(i < a.length) {
var v = a[i];
if (p(v)) {
a[j] = v;
j = j + 1 | 0;
}
i = i + 1 | 0;
};
a.splice(j);
}
function empty(a) {
a.splice(0);
}
function pushBack(x, xs) {
xs.push(x);
}
function memByRef(x, xs) {
return xs.indexOf(x) >= 0;
}
function iter(f, xs) {
for(var i = 0 ,i_finish = xs.length; i < i_finish; ++i){
f(xs[i]);
}
}
function iteri(f, a) {
for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){
f(i, a[i]);
}
}
function toList(a) {
var _i = a.length - 1 | 0;
var _res = /* [] */0;
while(true) {
var res = _res;
var i = _i;
if (i < 0) {
return res;
}
_res = {
hd: a[i],
tl: res
};
_i = i - 1 | 0;
continue ;
};
}
function init(n, f) {
var v = new Array(n);
for(var i = 0; i < n; ++i){
v[i] = f(i);
}
return v;
}
function copy(x) {
var len = x.length;
var b = new Array(len);
for(var i = 0; i < len; ++i){
b[i] = x[i];
}
return b;
}
function map(f, a) {
var l = a.length;
var r = new Array(l);
for(var i = 0; i < l; ++i){
r[i] = f(a[i]);
}
return r;
}
function foldLeft(f, x, a) {
var r = x;
for(var i = 0 ,i_finish = a.length; i < i_finish; ++i){
r = f(r, a[i]);
}
return r;
}
function foldRight(f, a, x) {
var r = x;
for(var i = a.length - 1 | 0; i >= 0; --i){
r = f(a[i], r);
}
return r;
}
function mapi(f, a) {
var l = a.length;
if (l === 0) {
return [];
}
var r = new Array(l);
for(var i = 0; i < l; ++i){
r[i] = f(i, a[i]);
}
return r;
}
function append(x, a) {
return a.concat([x]);
}
export {
filterInPlace ,
empty ,
pushBack ,
copy ,
memByRef ,
iter ,
iteri ,
toList ,
map ,
mapi ,
foldLeft ,
foldRight ,
init ,
append ,
}
/* No side effect */