División de una lista en bloques

Dado un arreglo y un tamaño de bloque n, crea chunk(_:_:). Divide el arreglo de entrada en subarreglos consecutivos de longitud n. Cuando queden menos de n valores, inclúyelos en un último subarreglo más corto. Conserva el orden original de los elementos.

Ejemplos

chunk([1, 2, 3, 4], 2) ➞ [[1, 2], [3, 4]]

chunk([1, 2, 3, 4, 5, 6, 7], 3) ➞ [[1, 2, 3], [4, 5, 6], [7]]

chunk([1, 2, 3, 4, 5], 10) ➞ [[1, 2, 3, 4, 5]]

Notas

La cantidad de subarreglos resultantes no tiene que ser igual al tamaño del bloque.