RosettaCodeData/Task/Flatten-a-list/Ceylon/flatten-a-list.ceylon
2023-07-01 13:44:08 -04:00

13 lines
382 B
Ceylon

shared void run() {
"Lazily flatten nested streams"
{Anything*} flatten({Anything*} stream)
=> stream.flatMap((element)
=> switch (element)
case (is {Anything*}) flatten(element)
else [element]);
value list = [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []];
print(list);
print(flatten(list).sequence());
}