A shipment of emergency supplies has arrived, but there's a problem. To protect from damage, the items — flashlights, first-aid kits, blankets — are packed inside boxes, and some of those boxes are nested several layers deep inside other boxes!
To be prepared for an emergency, everything must be easily accessible in one box. Can you unpack all the supplies and place them into a single box, so they're ready when needed most?
Take a nested array of any depth and return a fully flattened array.
Note that some language tracks may include null-like values in the input array, and the way these values are represented varies by track. Such values should be excluded from the flattened array.
Additionally, the input may be of a different data type and contain different types, depending on the track.
Check the test suite for details.
input: [1, [2, 6, null], [[null, [4]], 5]]
output: [1, 2, 6, 4, 5]
Without using the built-in flattening method, you can derive your own, but you will need to differentiate between what is a collection and what is not. Alternatively, if you decide to use the built-in flattening methods, you will need to create a new Stream type to override incorrect behaviour.
Sign up to Exercism to learn and master Pharo with 50 exercises, and real human mentoring, all for free.