<snapdata remixID="9394639"><project name="U8L2-PartitionSort-StarterKit" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U8L2-PartitionSort-StarterKit"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="append %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="287" collapsed="false">Take any number of input lists, and create a new list containing the items of the input lists.  So&#xD;              APPEND [A B] [C D]&#xD;where the [,,,] are lists reports the list&#xD;              [A B C D]&#xD;not [[A B] [C D]].</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="lists"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block var="lists"/></block><l>1</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="lists"/></block></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="lists"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><custom-block s="append %mult%l"><block s="reportCDR"><block var="lists"/></block></custom-block></block></script></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block s="reportListItem"><l>1</l><block var="lists"/></block></block><custom-block s="append %mult%l"><block s="reportCONS"><block s="reportCDR"><block s="reportListItem"><l>1</l><block var="lists"/></block></block><block s="reportCDR"><block var="lists"/></block></block></custom-block></block></block></script></block></script></block-definition><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="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></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></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="partition sort %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIfElse"><l/><script><block s="doReport"><l></l></block></script><script><block s="doDeclareVariables"><list><l>pivot</l></list><comment w="237" collapsed="false">Set your pivot to be the first item of the list.  Actually, it doesn&apos;t matter which item you pick.. but you are guaranteed that the first item exists because you are covering the empty-list case as your base case.</comment></block><block s="doReport"><custom-block s="append %mult%l"><list><l/><l/><l/></list></custom-block><comment w="256" collapsed="true">There do not need to be extra lines of code above this, though of course you can do this in many ways.  The key is to use the &quot;KEEP&quot; function three times. </comment></block></script><comment w="244" collapsed="true">What&apos;s our base case?  (When the list is empty)</comment></block></script><scripts><script x="24" y="273.2"><block s="reportGreaterThan"><l></l><l></l></block></script><script x="24" y="249.2"><block s="reportEquals"><l></l><l></l></block></script><script x="24" y="226.2"><block s="reportLessThan"><l></l><l></l></block></script><comment x="89" y="222.2" w="80" collapsed="false">Use these inside your keep function</comment><script x="22.32422274999999" y="195.66667266666656"><block s="reportKeep"><block s="reifyPredicate"><script></script><list></list></block><l/></block></script></scripts></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;fn&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:$flash sortiere _ nach _&#xD;pt:$flash uma ordenação de _ com critério _&#xD;ca:$flash ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash reverse %&apos;list&apos;" type="reporter" category="lists"><header></header><code></code><translations>de:$flash umgekehrt _&#xD;pt:$flash uma lista inversa de _&#xD;ca:$flash capgira _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition></blocks><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" hyperops="true" codify="false" inheritance="false" sublistIDs="false" id="679"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="680"></list></costumes><sounds><list struct="atomic" id="681"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0.8713692946057563" y="-0.6224066390041401" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="686"><costumes><list struct="atomic" id="687"></list></costumes><sounds><list struct="atomic" id="688"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="doSetVar"><l>list of numbers</l><block s="reportNewList"><list></list></block><comment w="90" collapsed="true">This builds a random list of numbers.</comment></block><block s="doRepeat"><l>100</l><script><block s="doAddToList"><block s="reportRandom"><l>1</l><l>100</l></block><block var="list of numbers"/></block></script></block></script><script x="22" y="131"><custom-block s="partition sort %l"><l/><comment w="191" collapsed="true">Complete this function.  See inside for instructions.</comment></custom-block></script><script x="22" y="172"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportLessThan"><l></l><l>Jalicia</l></block></autolambda><list></list></block><block var="list of names"/><comment w="142" collapsed="false">An example of how to use KEEP to cull the list to the items which are alphabetically earlier than one particular name.&#xD;&#xD;You will use this kind of KEEP call to build the partition sort.</comment></block></script></scripts></sprite><watcher var="list of numbers" style="normal" x="5.020833333333371" y="15.564584337499994" color="243,118,29" hidden="true"/><watcher var="list of names" style="normal" x="10" y="7.999998000000005" color="243,118,29" extX="95" extY="150"/></sprites></stage><variables><variable name="list of numbers"><list struct="atomic" id="724">65,80,53,40,27,44,70,66,85,4,10,62,7,15,99,47,12,23,32,30,97,9,81,50,16,29,68,43,54,60,19,11,57,47,100,84,84,42,13,43,7,22,88,33,7,59,66,66,49,28,53,26,98,25,18,72,56,78,15,65,80,46,88,42,100,58,36,41,22,44,98,71,40,78,25,83,93,19,12,71,30,20,88,56,96,20,63,33,24,95,65,3,44,84,63,60,48,38,46,99</list></variable><variable name="list of names"><list struct="atomic" id="725">Jalicia,Jocelyn,Ellanie,Mizuki,Tylor,Kyler,Camila,Laighla,Owen,Senay,Gemari,Saiya,Jad,Trennen,Jolynn,Niralya,Malu,Swan,Ronel,Avali,Ronen,Marlise,Anthonie,Kaddy,Caymen,Jovani,Jaisen,Atreyu,Keyoni,Nakari,Saphera,Manasvini,Kemi,Rivers,Pavel,Waseem,Ronen,Anvi,Jaydin,Advith,Aiyla,Nashon,Emerlyn,Darren,Rylin,Marigold,Tobyn,Melo,Nyna,Noemie,Lora,Ayren,Dailynn,Noahjames,Kaelani,Taila,Audrey,Samwise,Charliemae,Espen,Keidy,Izella,Taleah,Rhylan,Rejoyce,Grecia,Sian,Justiss,Evalynne,Summerlin,Destynee,Batul,Jhourni,Xaidyn,Hason,Micael,Shriyaan,Samad,Adalynne,Insiya,Unknown,Avera,Elih,Jaelyne,Kainoah,Rogan,Leib,Cassidey,Zahyra,Jovante,Diann,Gamal,Kendle,Rockelle,Xariah,Regan,Dio,Jacori,Jessiah,Lisette,Jeyko,Aalijah,Hansel,Romie,Rayden,Kazuki,Ryheem,Trenton,Audrey,Kalkidan,Jumanah,Thackery,Athziry,Rosaura,Kesley,Antonious,Trequan,Cordaro,Loula,Joeanthony,Auri,Gumaro,Ximena,Kypton,Keigan,Fredi,Jahmi,Kazimir,Haris,Jaycey,Erickson,Hazelle,Aslynn,Kieryn,Jayjay,Evanna,Jahmere,Yalexi,Abduallah,Shaylee,Antonina,Lilika,Makira,Novel,Codie,Aythen,Marialis,Nameer,Harsh,Leelan,Maniah,Kollier,Awesome,Ravon,Kessler,Ajeet,Kassi,Callaway,Stephenson,Reann,Priyansh,Obaloluwa,Ajavion,Mona,Dalary,Amya,Demyah,Melchor,Wynter,Reanna,Hadar,Khadyn,Wisdom,Mackenzey,Jaimarie,Zaionna,Ziyana,Daneen,Liyu,Navayah,Gregg,Aonesty,Myrikal,Tana,Temari,Torin,Finola,Jemima,Yarithza,Tahiri,Emmaleah,Haddie,Kaemon,Abriel,Ebba,Hampton,Vernell,Leeandrew,Kdyn,Areen</list></variable></variables></scene></scenes></project><media name="U8L2-PartitionSort-StarterKit" app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>