Flatten a list: Difference between revisions

m
Line 496:
 
=={{header|BaCon}}==
BaCon has the concept of delimited strings, which may contain delimited strings within delimited strings etc. Such nested delimited strings must be surrounded by (escaped) double quotes in order to avoid their delimiter messing up operations on higher level delimited strings. FunctionallyHowever, howeverfrom functional point of view, a delimited string is the same as a regular list. The special function FLATTEN$ can actually flatten out lists within lists. The last SORT$ in the program below makes sure no empty items remain in the list.
<lang qbasic>OPTION COLLAPSE TRUE
 
listlst$ = "\"1\",2,\"\\\"3,4\\\",5\",\"\\\"\\\\\"\\\\\"\\\"\",\"\\\"\\\\\"6\\\\\"\\\"\",7,8,\"\""
 
PRINT listlst$
 
REPEAT
list$ = FLATTEN$(listlst$)
UNTIL AMOUNT(listlst$, ",") = AMOUNT(FLATTEN$(listlst$), ",")
 
PRINT SORT$(listlst$, ",")</lang>
{{out}}
<pre>
Anonymous user