<snapdata remixID="9289490"><project name="1920 U8V2p1 Recursion Factorial Demo (starter file)" 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><watcher var="trace" style="normal" x="2.9832899305556566" y="2.983289930555557" color="243,118,29" extX="123" extY="243"/><sprite name="Sprite" idx="1" x="72.8165417909363" y="-4.762420891830942" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="9"><costumes><list struct="atomic" id="10"></list></costumes><sounds><list struct="atomic" id="11"></list></sounds><blocks></blocks><variables></variables><scripts><comment x="20" y="20" w="593" collapsed="false">Updated Cael Black on 04/10/2020&#xD;1920 U8V2p1 Recursion Factorial Demo (starter file)&#xD;Week 11: Recursion II Video: Recursion II  Recursion: Factorial</comment><script x="129.000001" y="147.000003"><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><block s="bubble"><custom-block s="%s !"><l>5</l></custom-block></block></script></scripts></sprite></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"/><l>!</l></list></custom-block><block var="trace"/></block><block s="doIfElse"><block s="reportEquals"><l>0</l><block var="n"/></block><script><block s="doAddToList"><custom-block s="join words %mult%txt"><list><l>returning</l><l>!</l></list></custom-block><block var="trace"/></block><block s="doReport"><l>1</l></block></script><script><block s="doDeclareVariables"><list><l>answer</l></list></block><block s="doSetVar"><l>answer</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="answer"/></list></custom-block><block var="trace"/></block><block s="doReport"><block var="answer"/></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"/><l>!</l></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>!</l></list></custom-block><block var="trace"/></block><block s="doReport"><l>1</l></block></script><script><block s="doDeclareVariables"><list><l>answer</l></list></block><block s="doSetVar"><l>answer</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="answer"/></list></custom-block><block var="trace"/></block><block s="doReport"><block var="answer"/></block></script></block></script></block-definition></blocks><variables><variable name="trace"><list struct="atomic" id="713">5 !,4 !,3 !,2 !,1 !,0 !,returning !,returning 1,returning 2,returning 6,returning 24,returning 120</list></variable></variables></project><media name="1920 U8V2p1 Recursion Factorial Demo (starter file)" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>