<snapdata remixID="9289374"><project name="U8V2p1 Recursion Factorial Demo" app="Snap! 5.4, http://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Sprite" idx="1" x="1.8165417909362986" y="-1.762420891830942" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="8"><costumes><list struct="atomic" id="9"></list></costumes><sounds><list struct="atomic" id="10"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="20" y="20" w="593" collapsed="false">Updated Grant Weber on 02/23/2020&#xD;1920 U8V2p1 Recursion Factorial Demo (starter file)&#xD;Week 11: Recursion II Video: Recursion II  Recursion: Factorial</comment><script x="20" y="98"><block s="doSetVar"><l>trace</l><block s="reportNewList"><list></list></block><comment w="297" collapsed="true">Housekeeping</comment></block><block s="doDeleteFromList"><l><option>all</option></l><block var="trace"/></block></script><script x="24" y="161"><custom-block s="%s !"><l>3</l><comment w="404" collapsed="true">Complete Video Lab page 1 - Recursion Factorial: Recursion: Demonstrating n!</comment></custom-block></script><script x="17" y="224"><block s="bubble"><custom-block s="%s !"><l>3</l></custom-block></block></script><script x="18" y="276"><custom-block s="n %s ! extended"><l>20</l><comment w="403" collapsed="true">Complete Video Lab page 2 - Recursion: Factorial Demo</comment></custom-block></script></scripts></sprite><watcher var="trace" style="normal" x="2.9832899305556566" y="2.983289930555557" color="243,118,29" extX="197" extY="324"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.000003" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="%&apos;n&apos; !" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doAddToList"><custom-block s="join words %mult%txt"><list><block var="n"/></list></custom-block><block var="trace"/></block><block s="doIfElse"><block s="reportEquals"><block var="n"/><l>0</l></block><script><block s="doAddToList"><custom-block s="join words %mult%txt"><list><l>returning</l><l>1</l></list></custom-block><block var="trace"/></block><block s="doReport"><l>1</l></block></script><script><block s="doDeclareVariables"><list><l>ans</l></list></block><block s="doSetVar"><l>ans</l><block s="reportProduct"><block var="n"/><custom-block s="%s !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></block></block><block s="doAddToList"><custom-block s="join words %mult%txt"><list><l>returning</l><block var="ans"/></list></custom-block><block var="trace"/></block><block s="doReport"><block var="ans"/></block></script></block></script></block-definition><block-definition s="n %&apos;n&apos; ! extended" type="command" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doAddToList"><custom-block s="join words %mult%txt"><list><block var="n"/></list></custom-block><block var="trace"/></block><block s="doIfElse"><block s="reportEquals"><block var="n"/><l>0</l></block><script><block s="doAddToList"><custom-block s="join words %mult%txt"><list><l>returning</l><l>1</l></list></custom-block><block var="trace"/></block><block s="doReport"><l>1</l></block></script><script><block s="doDeclareVariables"><list><l>ans</l></list></block><block s="doSetVar"><l>ans</l><block s="reportProduct"><block var="n"/><custom-block s="%s !"><block s="reportDifference"><block var="n"/><l>1</l></block></custom-block></block></block><block s="doAddToList"><custom-block s="join words %mult%txt"><list><l>returning</l><block var="ans"/></list></custom-block><block var="trace"/></block><block s="doReport"><block var="ans"/></block></script></block></script></block-definition></blocks><variables><variable name="trace"><list struct="atomic" id="715">20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,returning 1,returning 1,returning 2,returning 6,returning 24,returning 120,returning 720,returning 5040,returning 40320,returning 362880,returning 3628800,returning 39916800,returning 479001600,returning 6227020800,returning 87178291200,returning 1307674368000,returning 20922789888000,returning 355687428096000,returning 6402373705728000,returning 121645100408832000,returning 2432902008176640000</list></variable></variables></project><media name="U8V2p1 Recursion Factorial Demo" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>