function chunks(lst, size, step=1) { function generate(from, to) { if (from.length < step) { return to.concat(from) } return generate(from.slice(step, from.length), to.concat([from.slice(0, size)])) } return generate(lst, []) }