/** @module array/chunk.ts */ import { untypedCurry } from '../function/untypedCurry' // tslint:disable-next-line:variable-name const _chunk = untypedCurry( ( n: number, arr: any[] ) => !arr.length ? [] : [ arr.slice( 0, n ) ].concat( _chunk( n, arr.slice( n ) ) ) ) export function chunk( n: number, arr: A[] ): A[][] export function chunk( n: number ): ( arr: A[] ) => A[][] /** * Takes a number n and an array, returns new array with items grouped every n * @sig n -> a[] -> a[][] * @param n groups items from array into tuples of length n * @param arr array to group from * @example * chunk( 2, [1,2,3,4,5,6]) * //=> [ [1,2], [3,4], [5,6] ] */ export function chunk( ...args ) { return _chunk( ...args ) } export default chunk