Flatten a list: Difference between revisions

m (→‎JS ES6 Recursive: (normalised spacing))
Line 2,055:
=={{header|Julia}}==
Note that Julia versions prior to 0.5 auto-flattened nested arrays. The following version of flatten makes use of the higher order function ''mapreduce''.
<lang Juliajulia>flat(Aarr::Array) = mapreduce(x -> isa(x, Array) ? flat(x) : x, vcatappend!, [], Aarr)</lang>
 
An iterative recursive version that is even faster.
<lang Juliajulia>function flatflat2(Aarr)
result rst = Any[]
grep(av) = for x in a v
if isa(x, Array) ? grep(x) :else push!(resultrst, x) end
end
grep(Aarr)
result rst
end
 
</lang>
julia>arr = show(flat([[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]))
@show flat(arr)</lang>
 
{{out}}
<pre>flat(arr) = Any[1, 2, 3, 4, 5, 6, 7, 8]</pre>
<pre>
julia> show(flat([[1],2,[[3, 4], 5],[[[]]],[[[6]]],7,8,[]]))
Any[1,2,3,4,5,6,7,8]
</pre>
 
=={{header|K}}==
Anonymous user