UNPKG

functionalscript

Version:

FunctionalScript is a purely functional subset of JavaScript

24 lines (23 loc) 669 B
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; };