<div dir="ltr"><div class="gmail_extra"><font face="arial, sans-serif">What about a "loop delimiter" magic where you insert a matching pair of %magics bracketing a sequence of regular cells, and then it basically unrolls the loop for you?</font></div>

<div class="gmail_extra"><font face="arial, sans-serif"><br></font></div><div class="gmail_extra"><font face="arial, sans-serif">i.e. when you run the magic, on the first loop iteration it executes each cell in place, with the first loop value, and for each subsequent iterations, it appends a copied sequence of new cells after the %end, evaluated with the corresponding loop element.   So if you looped over a list of two items, you'd end up with a second copy of all your looped cells that have been executed with the second item in the list. (see example sketch below)</font></div>

<div class="gmail_extra"><br></div><div class="gmail_extra">So it's doing a kind of repeated block copy & paste (useful in it's own right), unrolling the loop, and leaving you the new results to explore and further tweak.  Maybe it would also mark itself as executed somehow (comment itself out?!) so the notebook is stable if you re-execute all cells?</div>

<div class="gmail_extra"><font face="arial, sans-serif"><br></font></div><div class="gmail_extra"><font face="arial, sans-serif">You'd rapidly want multi-cell delete I guess :)  Perhaps other bracketing magics like %block cut / %endblock / %block paste ??</font></div>

<div class="gmail_extra"><font face="arial, sans-serif"><br></font></div><div class="gmail_extra">Patrick</div><div class="gmail_extra"><br></div><div class="gmail_extra">Example with cells a, b, c:</div><div class="gmail_extra">

<br></div><div class="gmail_extra"><font face="arial, sans-serif">    %begin for item in [1,2]</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">---</span></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">a</span></div><div class="gmail_extra">

<span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">---</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">b</span></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">---</span></div><div class="gmail_extra">

<span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">c</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">---</span></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">%end</font></div><div class="gmail_extra"><span style="font-size:12.727272033691406px;font-family:arial,sans-serif"><br>

</span></div><div class="gmail_extra"><span style="font-size:12.727272033691406px;font-family:arial,sans-serif">when executed becomes:</span></div><div class="gmail_extra"><span style="font-size:12.727272033691406px;font-family:arial,sans-serif"><br>

</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif"># %begin for item in [1, 2]</font></div><div class="gmail_extra">

<span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">a [item=1]</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">b [item=1]</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">c [item=1]</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif"># %end</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div><div class="gmail_extra"><div class="gmail_extra">

<span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">a [item=2]</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">b [item=2]</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div>

<div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">c [item=2]</font></div><div class="gmail_extra"><span style="font-family:arial,sans-serif">   </span><span style="font-family:arial,sans-serif"> </span><font face="arial, sans-serif">---</font></div>

</div><div class="gmail_extra"><br></div><div class="gmail_extra"><span style="font-size:12.727272033691406px;font-family:arial,sans-serif"><br></span></div><div class="gmail_extra"><span style="font-size:12.727272033691406px;font-family:arial,sans-serif">From: Thomas Kluyver <</span><a href="mailto:takowl@gmail.com" style="font-size:12.727272033691406px;font-family:arial,sans-serif">takowl@gmail.com</a><span style="font-size:12.727272033691406px;font-family:arial,sans-serif">></span><br>

</div><div class="gmail_extra"><br style="font-family:arial,sans-serif;font-size:12.727272033691406px"><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">>On 14 March 2014 09:46, Nikolas Tezak <</span><a href="mailto:ntezak@stanford.edu" style="font-family:arial,sans-serif;font-size:12.727272033691406px">ntezak@stanford.edu</a><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> wrote:</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<br style="font-family:arial,sans-serif;font-size:12.727272033691406px"><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> I've been thinking about this for a while as well. Although this doesn't</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> quite address looping, I think one idea might be to use cell tags to create</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> certain "run sets" of cells and then have a little widget/ui component that</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> allows for selecting and running all cells of a certain tag. So, in that</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> respect a good interface for marking/selecting multiple cells and then</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">> tagging them or running them or copying them would be great.</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<br style="font-family:arial,sans-serif;font-size:12.727272033691406px"><span style="font-family:arial,sans-serif;font-size:12.727272033691406px">Tags on cells is something that we want to do - there are a lot of useful</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">things that could be done with it.</span><br style="font-family:arial,sans-serif;font-size:12.727272033691406px"><br style="font-family:arial,sans-serif;font-size:12.727272033691406px">

<span style="font-family:arial,sans-serif;font-size:12.727272033691406px">Thomas</span><br></div></div>