UNPKG

rescript

Version:
135 lines (117 loc) 1.87 kB
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 */