#N canvas 307 111 938 423 12; #X obj 109 214 pipe 500; #X obj 109 68 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 109 88 t b b, f 12; #X msg 190 113 0; #X obj 109 113 delay 200; #X msg 109 138 1; #X obj 109 289 s feedback; #X obj 162 172 r feedback; #X obj 109 239 t f f; #X obj 141 264 print; #X msg 55 172 flush; #X obj 400 214 pipe 500; #X obj 400 68 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 400 88 t b b, f 12; #X msg 481 113 0; #X obj 400 113 delay 200; #X msg 400 138 1; #X obj 400 239 t f f; #X obj 432 264 print; #X msg 346 172 flush; #X obj 400 289 s feedback2; #X obj 462 161 r feedback2; #X msg 462 186 \$1 500; #X text 56 25 flush causes infloop! bad!; #X text 344 25 flush causes infloop \; but this tries to force a delay ; #X obj 735 214 pipe 500; #X obj 735 68 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 816 163 0; #X obj 775 138 delay 200; #X msg 775 163 1; #X obj 735 239 t f f; #X obj 767 264 print; #X msg 662 63 flush; #X obj 599 118 r feedback3; #X obj 735 289 s feedback3; #X obj 735 88 t b b b, f 12; #X msg 735 113 1; #X obj 599 143 spigot, f 14; #X text 600 25 block feedback upon flush \; no infloop; #X msg 694 113 0; #X obj 662 88 t a b; #N canvas 353 93 662 622 iterate-and-add 0; #X obj 127 33 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 127 53 t f f, f 24; #X obj 292 78 select 1; #X msg 324 128 3 5 2 4; #X obj 180 284 list store; #X obj 292 103 t b b; #X msg 292 128 0; #X obj 127 184 f; #X obj 127 78 metro 500; #X obj 127 209 t f f f; #X obj 199 184 + 1; #X msg 150 234 get \$1 1; #X obj 127 395 pack 0 0; #X msg 247 309 \; toggle 0; #X obj 150 28 r toggle; #X msg 127 420 Iteration \$1 processed value \$2; #X obj 127 445 print; #X obj 180 309 t f f; #X msg 212 349 append \$1; #X text 265 289 stop signal (end of list); #X text 290 349 "modify while iterating" \; analogous to feeding pipe's output back to its input, f 29; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 1 1 2 0; #X connect 2 0 5 0; #X connect 3 0 4 1; #X connect 4 0 17 0; #X connect 4 1 13 0; #X connect 5 0 6 0; #X connect 5 1 3 0; #X connect 6 0 7 1; #X connect 7 0 9 0; #X connect 8 0 7 0; #X connect 9 0 12 0; #X connect 9 1 11 0; #X connect 9 2 10 0; #X connect 10 0 7 1; #X connect 11 0 4 0; #X connect 12 0 15 0; #X connect 14 0 0 0; #X connect 15 0 16 0; #X connect 17 0 12 1; #X connect 17 1 18 0; #X connect 18 0 4 0; #X restore 162 355 pd iterate-and-add; #X text 303 355 <-- demonstrates "modify while iterating" bug; #X connect 0 0 8 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 2 1 3 0; #X connect 3 0 0 0; #X connect 4 0 5 0; #X connect 5 0 0 0; #X connect 7 0 0 0; #X connect 8 0 6 0; #X connect 8 1 9 0; #X connect 10 0 0 0; #X connect 11 0 17 0; #X connect 12 0 13 0; #X connect 13 0 15 0; #X connect 13 1 14 0; #X connect 14 0 11 0; #X connect 15 0 16 0; #X connect 16 0 11 0; #X connect 17 0 20 0; #X connect 17 1 18 0; #X connect 19 0 11 0; #X connect 21 0 22 0; #X connect 22 0 11 0; #X connect 25 0 30 0; #X connect 26 0 35 0; #X connect 27 0 25 0; #X connect 28 0 29 0; #X connect 29 0 25 0; #X connect 30 0 34 0; #X connect 30 1 31 0; #X connect 32 0 40 0; #X connect 33 0 37 0; #X connect 35 0 36 0; #X connect 35 1 28 0; #X connect 35 2 27 0; #X connect 36 0 37 1; #X connect 37 0 25 0; #X connect 39 0 37 1; #X connect 40 0 25 0; #X connect 40 1 39 0;