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))