<snapdata remixID="9289675"><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><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 Firstname Lastname 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><block s="bubble"><custom-block s="%s !"><l></l></custom-block></block></script><script x="20" y="185"><custom-block s="%s !"><l>12</l><comment w="404" collapsed="true">Complete Video Lab page 1 - Recursion Factorial: Recursion: Demonstrating n!</comment></custom-block></script><script x="20" y="220"><custom-block s="n %s ! extended"><l></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="11.983289930555657" y="12.983289930555543" color="243,118,29" extX="95" extY="150"/></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="doDeclareVariables"><list><l>answer</l></list></block><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>1</l></list></custom-block><block var="trace"/></block><block s="doReport"><l>1</l></block></script><script><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><scripts><script x="34" y="133.2"><block s="doIfElse"><l/><script></script><script></script></block></script></scripts></block-definition></blocks><variables><variable name="trace"><list struct="atomic" id="668">150 !,149 !,148 !,147 !,146 !,145 !,144 !,143 !,142 !,141 !,140 !,139 !,138 !,137 !,136 !,135 !,134 !,133 !,132 !,131 !,130 !,129 !,128 !,127 !,126 !,125 !,124 !,123 !,122 !,121 !,120 !,119 !,118 !,117 !,116 !,115 !,114 !,113 !,112 !,111 !,110 !,109 !,108 !,107 !,106 !,105 !,104 !,103 !,102 !,101 !,100 !,99 !,98 !,97 !,96 !,95 !,94 !,93 !,92 !,91 !,90 !,89 !,88 !,87 !,86 !,85 !,84 !,83 !,82 !,81 !,80 !,79 !,78 !,77 !,76 !,75 !,74 !,73 !,72 !,71 !,70 !,69 !,68 !,67 !,66 !,65 !,64 !,63 !,62 !,61 !,60 !,59 !,58 !,57 !,56 !,55 !,54 !,53 !,52 !,51 !,50 !,49 !,48 !,47 !,46 !,45 !,44 !,43 !,42 !,41 !,40 !,39 !,38 !,37 !,36 !,35 !,34 !,33 !,32 !,31 !,30 !,29 !,28 !,27 !,26 !,25 !,24 !,23 !,22 !,21 !,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,returning 51090942171709440000,returning 1.1240007277776077e+21,returning 2.585201673888498e+22,returning 6.204484017332394e+23,returning 1.5511210043330986e+25,returning 4.0329146112660565e+26,returning 1.0888869450418352e+28,returning 3.0488834461171384e+29,returning 8.841761993739701e+30,returning 2.6525285981219103e+32,returning 8.222838654177922e+33,returning 2.631308369336935e+35,returning 8.683317618811886e+36,returning 2.9523279903960412e+38,returning 1.0333147966386144e+40,returning 3.719933267899012e+41,returning 1.3763753091226343e+43,returning 5.23022617466601e+44,returning 2.0397882081197442e+46,returning 8.159152832478977e+47,returning 3.3452526613163803e+49,returning 1.4050061177528798e+51,returning 6.041526306337383e+52,returning 2.6582715747884485e+54,returning 1.1962222086548019e+56,returning 5.5026221598120885e+57,returning 2.5862324151116818e+59,returning 1.2413915592536073e+61,returning 6.082818640342675e+62,returning 3.0414093201713376e+64,returning 1.5511187532873822e+66,returning 8.065817517094388e+67,returning 4.2748832840600255e+69,returning 2.308436973392414e+71,returning 1.2696403353658276e+73,returning 7.109985878048635e+74,returning 4.052691950487722e+76,returning 2.350561331282879e+78,returning 1.3868311854568986e+80,returning 8.320987112741392e+81,returning 5.075802138772248e+83,returning 3.146997326038794e+85,returning 1.98260831540444e+87,returning 1.2688693218588417e+89,returning 8.247650592082472e+90,returning 5.443449390774431e+92,returning 3.647111091818868e+94,returning 2.4800355424368305e+96,returning 1.711224524281413e+98,returning 1.197857166996989e+100,returning 8.504785885678622e+101,returning 6.123445837688608e+103,returning 4.4701154615126834e+105,returning 3.3078854415193856e+107,returning 2.480914081139539e+109,returning 1.8854947016660498e+111,returning 1.4518309202828584e+113,returning 1.1324281178206295e+115,returning 8.946182130782973e+116,returning 7.156945704626378e+118,returning 5.797126020747366e+120,returning 4.75364333701284e+122,returning 3.945523969720657e+124,returning 3.314240134565352e+126,returning 2.8171041143805494e+128,returning 2.4227095383672724e+130,returning 2.107757298379527e+132,returning 1.8548264225739836e+134,returning 1.6507955160908452e+136,returning 1.4857159644817607e+138,returning 1.3520015276784023e+140,returning 1.24384140546413e+142,returning 1.1567725070816409e+144,returning 1.0873661566567424e+146,returning 1.0329978488239052e+148,returning 9.916779348709491e+149,returning 9.619275968248206e+151,returning 9.426890448883242e+153,returning 9.33262154439441e+155,returning 9.33262154439441e+157,returning 9.425947759838354e+159,returning 9.614466715035121e+161,returning 9.902900716486175e+163,returning 1.0299016745145622e+166,returning 1.0813967582402903e+168,returning 1.1462805637347078e+170,returning 1.2265202031961373e+172,returning 1.3246418194518284e+174,returning 1.4438595832024928e+176,returning 1.5882455415227421e+178,returning 1.7629525510902437e+180,returning 1.9745068572210728e+182,returning 2.2311927486598123e+184,returning 2.543559733472186e+186,returning 2.925093693493014e+188,returning 3.3931086844518965e+190,returning 3.969937160808719e+192,returning 4.6845258497542883e+194,returning 5.574585761207603e+196,returning 6.689502913449124e+198,returning 8.09429852527344e+200,returning 9.875044200833598e+202,returning 1.2146304367025325e+205,returning 1.5061417415111404e+207,returning 1.8826771768889254e+209,returning 2.372173242880046e+211,returning 3.012660018457658e+213,returning 3.8562048236258025e+215,returning 4.9745042224772855e+217,returning 6.466855489220472e+219,returning 8.471580690878817e+221,returning 1.118248651196004e+224,returning 1.4872707060906852e+226,returning 1.992942746161518e+228,returning 2.6904727073180495e+230,returning 3.659042881952547e+232,returning 5.01288874827499e+234,returning 6.917786472619486e+236,returning 9.615723196941086e+238,returning 1.346201247571752e+241,returning 1.89814375907617e+243,returning 2.6953641378881614e+245,returning 3.8543707171800706e+247,returning 5.550293832739301e+249,returning 8.047926057471987e+251,returning 1.17499720439091e+254,returning 1.7272458904546376e+256,returning 2.5563239178728637e+258,returning 3.808922637630567e+260,returning 5.7133839564458505e+262</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>