functionalscript
Version:
FunctionalScript is a purely functional subset of JavaScript
24 lines (23 loc) • 669 B
JavaScript
import { reduce } from "../list/module.f.js";
import { addition, min as minOp, max as maxOp } from "../function/operator/module.f.js";
import { unsafeCmp } from "../function/compare/module.f.js";
export const sum = reduce(addition)(0);
export const min = reduce(minOp)(null);
export const max = reduce(maxOp)(null);
export const cmp = unsafeCmp;
const mo = [
[0x5555_5555, 1],
[0x3333_3333, 2],
[0x0F0F_0F0F, 4],
[0x00FF_00FF, 8],
[0x0000_FFFF, 16],
];
/**
* Count a number of ones in 32 bit number
*/
export const countOnes = (n) => {
for (const [mask, offset] of mo) {
n = (n & mask) + ((n >> offset) & mask);
}
return n;
};