@prelude/cmp
Version:
Cmp module.
30 lines • 1.01 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.array = void 0;
const prelude_js_1 = require("./prelude.js");
const number_js_1 = __importDefault(require("./number.js"));
/**
* Compares arrays element-wise up to common length.
*
* If all are equal then returns comparision result on array lengths.
*/
const array = (cmp) => (as, bs) => {
const n = Math.min(as.length, bs.length);
for (let i = 0; i < n; i++) {
switch (cmp(as[i], bs[i])) {
case prelude_js_1.asc:
return prelude_js_1.asc;
case prelude_js_1.eq:
break;
case prelude_js_1.dsc:
return prelude_js_1.dsc;
}
}
return (0, number_js_1.default)(as.length, bs.length);
};
exports.array = array;
exports.default = exports.array;
//# sourceMappingURL=array.js.map
;