Julia split a sequence into fixed-size chunks
Julia
function chunked(iterable, n::Integer)
n > 0 || throw(ArgumentError("chunk size must be positive"))
out = Vector{Vector{eltype(iterable)}}()
buf = eltype(iterable)[]
for x in iterable
push!(buf, x)
if length(buf) == n
push!(out, buf)
buf = eltype(iterable)[]
end
end
isempty(buf) || push!(out, buf)
return out
end
println(chunked(1:7, 3))
println(chunked("abcdef", 4))