RosettaCodeData/Task/Flatten-a-list/Smalltalk/flatten-a-list-2.st
2016-12-05 22:15:40 +01:00

18 lines
424 B
Smalltalk

flatDo :=
[:element :action |
element isCollection ifTrue:[
element do:[:el | flatDo value:el value:action]
] ifFalse:[
action value:element
].
].
collection := {
{1} . 2 . { {3 . 4} . 5 } .
{{{}}} . {{{6}}} . 7 . 8 . {}
}.
newColl := OrderedCollection new.
flatDo
value:collection
value:[:el | newColl add: el]