<snapdata remixID="9819764"><project name="Block workarounds" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAC9ElEQVR4Xu3VMUodARSF4RHE3bgHt2Bj5S7cqY02Vm7AykoxJJCQxiSk8Id3vmnfDPfecz54Zx8fHx+HRwJRAmcARskb+yMBAEFIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwAwjd9wABlIEwDwk/gvLi6O19fX4/z8PC3o1IcD+IeGr6+vf/36+Ph4PDw8nLqHL78PwL9E/jvCn6++v78ft7e3x83NzZcXdmoDAfwPgN8/eXp6Ou7v70/Nw5ffA+A//gW/vb0dV1dXx93d3ZeXdMoDAfyk3cvLy+P5+fl4eXk55f7z2wDMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F4AwO3+8+sBzCvYXgDA7f7z6wHMK9heAMDt/vPrAcwr2F7gG0zw/6gRppQqAAAAAElFTkSuQmCC</thumbnail><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="true" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" 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="0" y="-0.3076923076923208" 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="10" y="101" w="90" collapsed="false">In the operators pallete I re-created booleans but found out that lamda calculus is fun so i implemented numbers too</comment><script x="107" y="10"><block s="reportCombine"><block s="reportNumbers"><l>1</l><l>4</l></block><block s="reifyReporter"><autolambda><block s="reportIfElse"><block var="#2"/><block var="#2"/><l>0</l></block></autolambda><list><l>#1</l><l>#2</l></list></block></block></script><script x="122" y="259.2999999999996"><custom-block s="flatten alonzo %s"><custom-block s="first item of %s"><custom-block s="%s divmod %s"><custom-block s="alonzo %s"><l>6</l></custom-block><custom-block s="alonzo %s"><l>3</l></custom-block></custom-block></custom-block></custom-block></script><script x="367.1162109375" y="331.2999999999996"><custom-block s="%s ^ %s"><l></l><custom-block s="alonzo %s"><l>3</l></custom-block></custom-block></script><script x="170.1162109375" y="207.2999999999996"><custom-block s="increment alonzos %s"><custom-block s="%s &lt; %s"><l></l><l></l></custom-block></custom-block></script><script x="158" y="103.63333333333298"><block s="evaluate"><block s="evaluate"><block s="reifyReporter"><script></script><list></list></block><list><block s="reifyReporter"><autolambda><block s="reportSum"><l>1</l><l></l></block></autolambda><list></list></block></list></block><list><l>0</l></list></block></script><script x="215.1162109375" y="309.2999999999996"><custom-block s="decrement alonzos %s"><l></l></custom-block></script><script x="366.1162109375" y="206.2999999999996"><custom-block s="all but first of %s"><l></l></custom-block></script><script x="265.6435546875" y="425.2999999999996"><custom-block s="%s in front of %s"><l></l><custom-block s="%s in front of %s"><l>c</l><l>LIST::TYPE LIST</l></custom-block></custom-block></script><script x="61.1162109375" y="379.2999999999996"><custom-block s="item %s of list %s"><custom-block s="alonzo %s"><l>1</l></custom-block><l></l></custom-block></script><script x="36" y="416.66666666666674"><custom-block s="first item of %s"><l></l></custom-block></script><script x="94.6435546875" y="452.2999999999996"><custom-block s="flatten list %s"><custom-block s="map %s over %s"><block s="reifyReporter"><script></script><list></list></block><custom-block s="list %l %s"><block s="reportNewList"><list><l>345</l><l>6</l></list></block><l></l></custom-block></custom-block></custom-block></script><script x="441.3837890625" y="300.2999999999996"><block s="evaluate"><custom-block s="%s in front of %s"><l>6</l><l>65</l></custom-block><list><custom-block s="true"></custom-block></list></block></script><script x="318" y="487.2999999999996"><custom-block s="reverse %l"><l/></custom-block></script><script x="67" y="529.2999999999996"><custom-block s="flatten list %s"><custom-block s="map %s over %s"><block s="reifyReporter"><autolambda><block s="reportPower"><l></l><l></l></block></autolambda><list></list></block><custom-block s="list %l %s"><block s="reportNewList"><list><l>345</l><l>6</l></list></block><l></l></custom-block></custom-block></custom-block></script><script x="167.521484375" y="515.2999999999996"><custom-block s="last item of %s"><l></l></custom-block></script><script x="36" y="345.1666666666665"><custom-block s="repeat while %predRing do %repRing starts with %s"><block s="reifyPredicate"><script></script><list></list></block><block s="reifyReporter"><script></script><list></list></block><l>0</l></custom-block></script><script x="299" y="392.6666666666665"><custom-block s="%s encoded number %s"><l></l><l></l></custom-block></script><comment x="30" y="572.2999999999996" w="90" collapsed="false">these</comment><comment x="281" y="566.2999999999996" w="90" collapsed="false">not these</comment><script x="75" y="613.4666666666666"><custom-block s="%s in front of %s"><l></l><l></l></custom-block></script><script x="69" y="643.4666666666666"><custom-block s="all but first of %s"><l></l></custom-block></script><script x="82" y="670.6333333333336"><custom-block s="first item of %s"><l></l></custom-block></script><script x="96" y="705.8000000000005"><custom-block s="list %l %s"><l/><l></l></custom-block></script><script x="98" y="732.9666666666675"><custom-block s="item %s of list %s"><l></l><l></l></custom-block></script><script x="101" y="757.1333333333342"><custom-block s="map %s over %s"><l></l><l></l></custom-block></script><script x="97" y="781.3000000000011"><custom-block s="empty? %s"><l></l></custom-block></script><script x="287" y="612.8000000000012"><block s="reportCONS"><l></l><l/></block></script><script x="279" y="643.3000000000011"><block s="reportCDR"><l/></block></script><script x="280" y="678.3000000000011"><block s="reportListItem"><l>1</l><l/></block></script><script x="408" y="680.3000000000011"><block s="reportFindFirst"><block s="reifyPredicate"><script></script><list></list></block><l/><comment w="90" collapsed="false">lol</comment></block></script><script x="282" y="706.9666666666681"><block s="reportNewList"><list><l></l></list></block></script><script x="272" y="739.9666666666681"><block s="reportListItem"><l></l><l/></block></script><script x="273" y="761.9666666666681"><block s="reportMap"><block s="reifyReporter"><script></script><list></list></block><l/></block></script><script x="270" y="786.9666666666681"><block s="reportListIsEmpty"><l/></block></script><script x="93" y="810.4666666666678"><custom-block s="last item of %s"><l></l></custom-block></script><script x="268" y="814.466666666668"><block s="reportListItem"><l><option>last</option></l><l/></block></script><script x="84" y="838.8000000000013"><custom-block s="true"></custom-block></script><script x="83" y="865.6333333333347"><custom-block s="false"></custom-block></script><script x="255" y="837.8000000000013"><block s="reportBoolean"><l><bool>true</bool></l></block></script><script x="254" y="862.466666666668"><block s="reportBoolean"><l><bool>false</bool></l></block></script><script x="75" y="889.3000000000014"><custom-block s="%s ? %anyUE : %anyUE"><l></l><l></l><l></l></custom-block></script><script x="255" y="888.9666666666681"><block s="reportIfElse"><l/><l></l><l></l></block></script><script x="74" y="920.3000000000015"><custom-block s="%s and %s"><l></l><l></l></custom-block></script><script x="83" y="945.3000000000015"><custom-block s="%s or %s"><l></l><l></l></custom-block></script><script x="89" y="965.3000000000017"><custom-block s="not %s"><l></l></custom-block></script><script x="85" y="990.3000000000015"><custom-block s="%s xor %s"><l></l><l></l></custom-block></script><script x="95" y="1020.3000000000015"><custom-block s="%s + %s"><l></l><l></l></custom-block></script><script x="89" y="1048.3000000000015"><custom-block s="%s * %s"><l></l><l></l></custom-block></script><script x="91" y="1071.3000000000015"><custom-block s="%s - %s"><l></l><l></l></custom-block></script><script x="81" y="1090.3000000000015"><custom-block s="%s divmod %s"><l></l><l></l></custom-block></script><script x="93" y="1114.3000000000015"><custom-block s="%s = %s"><l></l><l></l></custom-block></script><script x="97" y="1142.3000000000015"><custom-block s="%s &gt; %s"><l></l><l></l></custom-block></script><script x="99" y="1170.3000000000015"><custom-block s="%s &lt; %s"><l></l><l></l></custom-block></script><script x="78" y="1197.3000000000015"><custom-block s="%s encoded number %s"><l></l><l></l></custom-block></script><script x="247" y="922.6333333333349"><block s="reportAnd"><l/><l/></block></script><script x="247" y="947.6333333333349"><block s="reportOr"><l/><l/></block></script><script x="251" y="971.6333333333349"><block s="reportNot"><l/></block></script><script x="245" y="994.3000000000015"><block s="evaluate"><block s="reifyReporter"><script><block s="doReport"><l>Snap! does not have this block while it should have!</l></block></script><list></list></block><list><l></l><l></l></list></block></script><script x="234" y="1028.633333333335"><block s="reportSum"><l></l><l></l></block></script><script x="227" y="1050.633333333335"><block s="reportProduct"><l></l><l></l></block></script><script x="227" y="1074.633333333335"><block s="reportDifference"><l></l><l></l></block></script><script x="219" y="1098.633333333335"><block s="reportModulus"><l></l><l></l></block></script><script x="310" y="1095.633333333335"><block s="reportQuotient"><l></l><l></l></block></script><script x="220" y="1122.633333333335"><block s="reportEquals"><l></l><l></l></block></script><script x="222" y="1147.633333333335"><block s="reportGreaterThan"><l></l><l></l></block></script><script x="223" y="1170.633333333335"><block s="reportLessThan"><l></l><l></l></block></script><script x="231" y="1198.8000000000015"><block s="evaluate"><block s="reifyReporter"><script><block s="doReport"><l></l></block></script><list></list></block><list></list><comment w="90" collapsed="false">lol</comment></block></script></scripts></sprite></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="true" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Umm... well I can&apos;t explain this</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block var="#1"/></autolambda><list><l>#1</l><l>#2</l></list></block></block></script></block-definition><block-definition s="false" type="predicate" category="operators"><comment x="0" y="0" w="90" collapsed="false">Umm... well I can&apos;t explain this</comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block var="#2"/></autolambda><list><l>#1</l><l>#2</l></list></block></block></script></block-definition><block-definition s="%&apos;d&apos; ? %&apos;f&apos; : %&apos;g&apos;" type="reporter" category="operators"><comment x="0" y="0" w="90" collapsed="false">Umm...</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block var="d"/><list><block var="f"/><block var="g"/></list></block><list></list></block></block></script></block-definition><block-definition s="%&apos;a&apos; and %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><block var="a"/><block var="b"/><custom-block s="false"></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;a&apos; or %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><block var="a"/><custom-block s="true"></custom-block><block var="b"/></custom-block></block></script></block-definition><block-definition s="not %&apos;a&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><block var="a"/><custom-block s="false"></custom-block><custom-block s="true"></custom-block></custom-block></block></script></block-definition><block-definition s="%&apos;a&apos; xor %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><block var="a"/><custom-block s="not %s"><block var="b"/></custom-block><block var="b"/></custom-block></block></script></block-definition><block-definition s="alonzo %&apos;x&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reifyReporter"><autolambda><block s="reifyReporter"><autolambda><block var="y"/></autolambda><list><l>y</l></list></block></autolambda><list><l>f</l></list></block></block><block s="doRepeat"><block var="x"/><script><block s="doSetVar"><l>a</l><custom-block s="increment alonzos %s"><block var="a"/></custom-block></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="increment alonzos %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reifyReporter"><autolambda><block s="evaluate"><block var="f"/><list><block s="evaluate"><block s="evaluate"><block var="a"/><list><block var="f"/></list></block><list><block var="x"/></list></block></list></block></autolambda><list><l>x</l></list></block></autolambda><list><l>f</l></list></block></block></script></block-definition><block-definition s="%&apos;d&apos; + %&apos;g&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><custom-block s="compose %s %s"><block s="evaluate"><block var="d"/><list><block var="#1"/></list></block><block s="evaluate"><block var="g"/><list><block var="#1"/></list></block></custom-block></autolambda><list><l>#1</l></list></block></block></script></block-definition><block-definition s="flatten alonzo %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block var="a"/><list><block s="reifyReporter"><autolambda><block s="reportSum"><l>1</l><l></l></block></autolambda><list></list></block></list></block><list><l>0</l></list></block></block></script></block-definition><block-definition s="compose %&apos;x&apos; %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="x"/><list><block s="evaluate"><block var="y"/><list><block var="t"/></list></block></list></block></autolambda><list><l>t</l></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; * %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="compose %s %s"><block var="x"/><block var="y"/></custom-block></block></script></block-definition><block-definition s="%&apos;d&apos; ^ %&apos;g&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="g"/><list><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; in front of %&apos;y&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="#1"/><list><block var="x"/><block var="y"/></list></block></autolambda><list><l>#1</l></list></block></block></script></block-definition><block-definition s="decrement alonzos %&apos;a&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="first item of %s"><block s="evaluate"><block s="evaluate"><block var="a"/><list><block s="reifyReporter"><autolambda><custom-block s="%s ? %anyUE : %anyUE"><custom-block s="all but first of %s"><block var="#1"/></custom-block><custom-block s="%s in front of %s"><custom-block s="increment alonzos %s"><custom-block s="first item of %s"><block var="#1"/></custom-block></custom-block><custom-block s="true"></custom-block></custom-block><custom-block s="%s in front of %s"><custom-block s="alonzo %s"><l>0</l></custom-block><custom-block s="true"></custom-block></custom-block></custom-block></autolambda><list><l>#1</l></list></block></list></block><list><custom-block s="%s in front of %s"><custom-block s="alonzo %s"><l>0</l></custom-block><custom-block s="false"></custom-block></custom-block></list></block></custom-block></block></script></block-definition><block-definition s="all but first of %&apos;x&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="x"/><list><custom-block s="false"></custom-block></list></block></block></script></block-definition><block-definition s="first item of %&apos;x&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block var="x"/><list><custom-block s="true"></custom-block></list></block></block></script></block-definition><block-definition s="%&apos;d&apos; - %&apos;g&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block var="g"/><list><block s="reifyReporter"><autolambda><custom-block s="decrement alonzos %s"><block var="#1"/></custom-block></autolambda><list><l>#1</l></list></block></list></block><list><block var="d"/></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; divmod %&apos;y&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="repeat while %predRing do %repRing starts with %s"><block s="reifyPredicate"><autolambda><custom-block s="not %s"><custom-block s="%s &gt; %s"><block var="y"/><custom-block s="all but first of %s"><block var="#1"/></custom-block></custom-block></custom-block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><autolambda><custom-block s="%s in front of %s"><custom-block s="increment alonzos %s"><custom-block s="first item of %s"><block var="#1"/></custom-block></custom-block><custom-block s="%s - %s"><custom-block s="all but first of %s"><block var="#1"/></custom-block><block var="y"/></custom-block></custom-block></autolambda><list><l>#1</l></list></block><custom-block s="%s in front of %s"><custom-block s="alonzo %s"><l>0</l></custom-block><block var="x"/></custom-block></custom-block></block></script></block-definition><block-definition s="repeat while %&apos;x&apos; do %&apos;y&apos; starts with %&apos;k&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%repRing"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><block s="evaluate"><block var="x"/><list><block var="k"/></list></block><custom-block s="repeat while %predRing do %repRing starts with %s"><block var="x"/><block var="y"/><block s="evaluate"><block var="y"/><list><block var="k"/></list></block></custom-block><block var="k"/></custom-block></block></script></block-definition><block-definition s="do these: %&apos;x&apos; %&apos;y&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s in front of %s"><block s="evaluate"><block var="x"/><list></list></block><block s="evaluate"><block var="y"/><list></list></block></custom-block></block></script></block-definition><block-definition s="%&apos;x&apos; = %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s and %s"><block s="evaluate"><block s="evaluate"><custom-block s="%s - %s"><block var="y"/><block var="x"/></custom-block><list><block s="reifyReporter"><autolambda><custom-block s="false"></custom-block></autolambda><list></list></block></list></block><list><custom-block s="true"></custom-block></list></block><block s="evaluate"><block s="evaluate"><custom-block s="%s - %s"><block var="x"/><block var="y"/></custom-block><list><block s="reifyReporter"><autolambda><custom-block s="false"></custom-block></autolambda><list></list></block></list></block><list><custom-block s="true"></custom-block></list></block></custom-block></block></script></block-definition><block-definition s="%&apos;x&apos; &gt; %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><custom-block s="%s - %s"><block var="x"/><block var="y"/></custom-block><list><block s="reifyReporter"><autolambda><custom-block s="true"></custom-block></autolambda><list></list></block></list></block><list><custom-block s="false"></custom-block></list></block></block></script></block-definition><block-definition s="%&apos;x&apos; &lt; %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><custom-block s="%s - %s"><block var="y"/><block var="x"/></custom-block><list><block s="reifyReporter"><autolambda><custom-block s="true"></custom-block></autolambda><list></list></block></list></block><list><custom-block s="false"></custom-block></list></block></block></script></block-definition><block-definition s="list %&apos;l&apos; %&apos;type&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l></list></block><block s="doSetVar"><l>a</l><block s="reportJoinWords"><list><l>TERMINATE ITERATION;LIST::TYPE </l><block var="type"/></list></block></block><block s="doForEach"><l>item</l><custom-block s="reverse %l"><block var="l"/></custom-block><script><block s="doSetVar"><l>a</l><custom-block s="%s in front of %s"><block var="item"/><block var="a"/></custom-block></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="item %&apos;k&apos; of list %&apos;l&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="first item of %s"><block s="evaluate"><block s="evaluate"><custom-block s="decrement alonzos %s"><block var="k"/></custom-block><list><block s="reifyReporter"><autolambda><custom-block s="all but first of %s"><block var="#1"/></custom-block></autolambda><list><l>#1</l></list></block></list></block><list><block var="l"/></list></block></custom-block></block></script></block-definition><block-definition s="reverse %&apos;l&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="l"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportListItem"><block s="reportNumbers"><block s="reportListAttribute"><l><option>length</option></l><block var="l"/></block><l>1</l></block><block var="l"/></block></block></script></block-definition><block-definition s="%&apos;d&apos; encoded number %&apos;x&apos;" type="reporter" category="operators"><comment w="90" collapsed="false">looks like this is a relic of my blocks...</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><l></l></block></script></block-definition><block-definition s="map %&apos;x&apos; over %&apos;d&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="%s ? %anyUE : %anyUE"><custom-block s="empty? %s"><block var="d"/></custom-block><custom-block s="type of %s"><block var="d"/></custom-block><custom-block s="%s in front of %s"><block s="evaluate"><block var="x"/><list><custom-block s="first item of %s"><block var="d"/></custom-block></list></block><custom-block s="map %s over %s"><block var="x"/><custom-block s="all but first of %s"><block var="d"/></custom-block></custom-block></custom-block></custom-block></block></script></block-definition><block-definition s="flatten list %&apos;l&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>a</l><l>b</l></list></block><block s="doSetVar"><l>a</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>b</l><custom-block s="repeat while %predRing do %repRing starts with %s"><block s="reifyPredicate"><autolambda><custom-block s="not %s"><custom-block s="empty? %s"><block var="#1"/></custom-block></custom-block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><script><block s="doAddToList"><custom-block s="first item of %s"><block var="#1"/></custom-block><block var="a"/></block><block s="doReport"><custom-block s="all but first of %s"><block var="#1"/></custom-block></block></script><list><l>#1</l></list></block><block var="l"/></custom-block></block><block s="doReport"><block var="a"/></block></script><scripts><script x="45" y="246.0000000000001"><block s="doAddToList"><block var="b"/><block var="a"/></block></script></scripts></block-definition><block-definition s="empty? %&apos;l&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><custom-block s="%s ? %anyUE : %anyUE"><custom-block s="safely try reporting %anyUE then if %upvar report %anyUE"><custom-block s="all but first of %s"><block var="l"/></custom-block><l>error</l><custom-block s="true"></custom-block></custom-block><custom-block s="true"></custom-block><custom-block s="false"></custom-block></custom-block><l>error</l><custom-block s="false"></custom-block></custom-block></block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><custom-block s="let %upvar be %s"><l>reset</l><block s="evaluate"><block s="reportJSFunction"><list><l>proc</l></list><l>var oldHandleError = proc.handleError,&#xD;    oldCatchingErrors = proc.isCatchingErrors;&#xD;&#xD;return function(){&#xD; proc.handleError = oldHandleError;&#xD; proc.isCatchingErrors = oldCatchingErrors;&#xD;}</l></block><list></list></block></custom-block><block s="doCallCC"><block s="reifyScript"><script><block s="doRun"><block s="reportJSFunction"><list><l>reset</l><l>action</l><l>handler</l><l>proc</l></list><l>proc.isCatchingErrors = true;&#xD;proc.handleError = function(error, element){&#xD; reset();&#xD; proc.context = handler;&#xD; proc.context.variables.setVar("error", error);&#xD;}&#xD;&#xD;try{&#xD; proc.evaluate(action, new List(), true);&#xD;}&#xD;catch(e){&#xD; proc.handleError(e, null);&#xD;} </l></block><list><block var="reset"/><block var="action"/><block s="reifyScript"><script><block s="doRun"><block s="reifyScript"><script><block s="doRun"><block var="handler"/><list></list></block><block s="doRun"><block var="return"/><list></list></block></script><list></list></block><list></list></block></script><list></list></block></list></block></script><list><l>return</l></list></block></block><block s="doRun"><block var="reset"/><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>msg</l></list><l>throw new Error(msg);</l></block><list><block var="msg"/></list></block></script></block-definition><block-definition s="let %&apos;var&apos; be %&apos;val&apos;" type="command" category="other"><comment x="0" y="0" w="183.33333333333334" collapsed="false">LET (FOO) BE (5)&#xD;is equivalent to&#xD;SCRIPT VARIABLES (FOO)&#xD;SET (FOO) TO (5)</comment><header></header><code></code><translations>pt:cria a variável de guião _ com valor _&#xD;</translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>var</l><block var="val"/></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations></translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="last item of %&apos;x&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><custom-block s="first item of %s"><custom-block s="repeat while %predRing do %repRing starts with %s"><block s="reifyPredicate"><autolambda><custom-block s="not %s"><custom-block s="empty? %s"><custom-block s="all but first of %s"><block var="#1"/></custom-block></custom-block></custom-block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><script><block s="doReport"><custom-block s="all but first of %s"><block var="#1"/></custom-block></block></script><list><l>#1</l></list></block><block var="x"/></custom-block></custom-block></block></script></block-definition><block-definition s="type of %&apos;x&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="repeat while %predRing do %repRing starts with %s"><block s="reifyPredicate"><autolambda><custom-block s="not %s"><custom-block s="empty? %s"><block var="#1"/></custom-block></custom-block></autolambda><list><l>#1</l></list></block><block s="reifyReporter"><script><block s="doReport"><custom-block s="all but first of %s"><block var="#1"/></custom-block></block></script><list><l>#1</l></list></block><block var="x"/></custom-block><l> </l></block></block></block></script></block-definition></blocks><variables></variables></project><media name="Block workarounds" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>