UNPKG

rescript

Version:
133 lines (116 loc) 2.07 kB
'use strict'; 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]); } exports.filterInPlace = filterInPlace; exports.empty = empty; exports.pushBack = pushBack; exports.copy = copy; exports.memByRef = memByRef; exports.iter = iter; exports.iteri = iteri; exports.toList = toList; exports.map = map; exports.mapi = mapi; exports.foldLeft = foldLeft; exports.foldRight = foldRight; exports.init = init; exports.append = append; /* No side effect */