<snapdata remixID="9406579"><project name="Lab 4.3 Number Cruncher" 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="false" codify="false" inheritance="true" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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</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="45.1484375" y="-80" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="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><script x="208.9999999999999" y="96.48818897637784"><block s="receiveGo"></block><block s="clear"></block><block s="hide"></block><block s="up"></block><block s="gotoXY"><l>-100</l><l>40</l></block><block s="doSetVar"><l>numbers</l><block s="reportNewList"><list><l>1</l><l>-2</l><l>3</l><l>-4</l><l>5</l><l>-6</l><l>7</l><l>-8</l></list></block></block><block s="write"><block s="reportJoinWords"><list><l>Sum of Numbers : </l><custom-block s="Sum of %l"><block var="numbers"/></custom-block></list></block><l>12</l></block><block s="gotoXY"><l>-100</l><l>20</l></block><block s="write"><block s="reportJoinWords"><list><l>Average of Numbers : </l><custom-block s="Average of %l"><block var="numbers"/></custom-block></list></block><l>12</l></block><block s="gotoXY"><l>-100</l><l>0</l></block><block s="write"><block s="reportJoinWords"><list><l>Includes negatives? </l><custom-block s="includes negative? %l"><block var="numbers"/></custom-block></list></block><l>12</l></block><block s="gotoXY"><l>-100</l><l>-20</l></block><block s="write"><block s="reportJoinWords"><list><l>Is increasing? </l><custom-block s="is increasing? %l"><block var="numbers"/></custom-block></list></block><l>12</l></block><block s="gotoXY"><l>-100</l><l>-40</l></block><block s="write"><block s="reportJoinWords"><list><l>Maximum of </l><custom-block s="Maximum of %l"><block var="numbers"/></custom-block></list></block><l>12</l></block><block s="gotoXY"><l>-100</l><l>-60</l></block><block s="write"><block s="reportJoinWords"><list><l>Make all positive </l><custom-block s="list $arrowRight sentence %l"><custom-block s="make all positive %l"><block var="numbers"/></custom-block></custom-block></list></block><l>12</l><comment w="530" collapsed="true">You will have to write further code here to make the returned list elements display in a more readable way.[Hint: loop and a variable to join all the list elements, or list-&gt;sentence from words, sentences library].[Optional]</comment></block><block s="gotoXY"><l>-100</l><l>-80</l></block><block s="write"><block s="reportJoinWords"><list><l>Only evens </l><custom-block s="list $arrowRight sentence %l"><custom-block s="only evens %l"><block var="numbers"/></custom-block></custom-block></list></block><l>12</l><comment w="433.2" collapsed="true">You will have to write further code here to make the returned list elements display in a more readable way.[Hint: loop and a variable to join all the list elements, or list-&gt;sentence from words, sentences library].[Optional].</comment></block></script></scripts></sprite><watcher var="numbers" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="70" hidden="true"/><watcher var="n" style="normal" x="10" y="103.000002" color="243,118,29" hidden="true"/><watcher var="total" style="normal" x="10" y="124.00000399999999" color="243,118,29" extX="80" extY="70" hidden="true"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="Sum of %&apos;numbers&apos;" type="reporter" category="lists"><comment w="90" collapsed="true">add code here to report the sum of all the numbers in the list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>total</l><l>0</l></block><block s="doForEach"><l>item</l><block var="numbers"/><script><block s="doChangeVar"><l>total</l><block var="item"/></block></script></block><block s="doReport"><block var="total"/></block></script></block-definition><block-definition s="Average of %&apos;List of Numbers&apos;" type="reporter" category="lists"><comment w="90" collapsed="true">add code to report the average of all the numbers in the list.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>n</l><custom-block s="Sum of %l"><block var="List of Numbers"/></custom-block></block><block s="doSetVar"><l>total</l><block s="reportQuotient"><block var="n"/><block s="reportListLength"><block var="List of Numbers"/></block></block></block><block s="doReport"><block var="total"/></block></script></block-definition><block-definition s="includes negative? %&apos;List of Numbers&apos;" type="predicate" category="lists"><comment w="90" collapsed="false">add to report true if the list contains at least one negative number, and false if all numbers are non-negative.</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doForEach"><l>item</l><block var="List of Numbers"/><script><block s="doIf"><block s="reportGreaterThan"><l>0</l><block var="item"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="is increasing? %&apos;List of Numbers&apos;" type="predicate" category="lists"><comment w="90" collapsed="true">add code to report true if each value in the list is greater than or equal to the one before it..</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>n</l><l>1</l></block><block s="doForEach"><l>item</l><block var="List of Numbers"/><script><block s="doIfElse"><block s="reportGreaterThan"><block var="n"/><block var="item"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doSetVar"><l>n</l><block var="item"/></block></script></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="Maximum of %&apos;List of Numbers&apos;" type="reporter" category="lists"><comment w="90" collapsed="false">add code to report the largest number in the list..</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>n</l><l>0</l></block><block s="doForEach"><l>item</l><block var="List of Numbers"/><script><block s="doIf"><block s="reportLessThan"><block var="n"/><block var="item"/></block><script><block s="doSetVar"><l>n</l><block var="item"/></block></script></block></script></block><block s="doReport"><block var="n"/></block></script></block-definition><block-definition s="make all positive %&apos;List of Numbers&apos;" type="reporter" category="lists"><comment w="90" collapsed="true">add code to report a new LIST that is the same as the argument, except all negative numbers have been replaced by their absolute value. .</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>total</l><block s="reportNewList"><list><l></l></list></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doForEach"><l>item</l><block var="List of Numbers"/><script><block s="doIfElse"><block s="reportGreaterThan"><l>0</l><block var="item"/></block><script><block s="doInsertInList"><block s="reportProduct"><block var="item"/><l>-1</l></block><block var="n"/><block var="total"/></block></script><script><block s="doInsertInList"><block var="item"/><block var="n"/><block var="total"/></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><block var="total"/></block></script></block-definition><block-definition s="only evens %&apos;List of Numbers&apos;" type="reporter" category="lists"><comment w="90" collapsed="true">add code to report a new LIST that contains only the even numbers from the argument list..</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doSetVar"><l>total</l><block s="reportNewList"><list><l></l></list></block></block><block s="doSetVar"><l>n</l><l>1</l></block><block s="doForEach"><l>item</l><block var="List of Numbers"/><script><block s="doIf"><block s="reportEquals"><block s="reportModulus"><block var="item"/><l>2</l></block><l>0</l></block><script><block s="doInsertInList"><block var="item"/><block var="n"/><block var="total"/></block></script></block><block s="doChangeVar"><l>n</l><l>1</l></block></script></block><block s="doReport"><block var="total"/></block></script></block-definition><block-definition s="all but first letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="199" collapsed="false">Takes a text string as input, and reports a new text string containing all but the first character of the input.</comment><header></header><code></code><translations>pt:_ sem o primeiro caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>2</l></block><block s="doUntil"><block s="reportGreaterThan"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="223.00000099999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the first word, with one space between words and no spaces at the beginning or end. (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a primeira palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bf</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bf</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportGreaterThan"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><script><block s="doSetVar"><l>bf</l><block s="reportJoinWords"><list><block var="bf"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block var="bf"/></block></script></block></script></block-definition><block-definition s="all but last letter of %&apos;string&apos;" type="reporter" category="operators"><comment x="0" y="0" w="218" collapsed="false">Takes a text string as input, and reports a new text string containing all but the last letter of the input.</comment><header></header><code></code><translations>pt:_ sem o último caractere&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>result</l><l>i</l></list></block><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="string"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportSum"><l>0</l><l>0</l></block></block></block></script></block><block s="doSetVar"><l>result</l><l></l></block><block s="doSetVar"><l>i</l><l>1</l></block><block s="doUntil"><block s="reportEquals"><block var="i"/><block s="reportStringSize"><block var="string"/></block></block><script><block s="doSetVar"><l>result</l><block s="reportJoinWords"><list><block var="result"/><block s="reportLetter"><block var="i"/><block var="string"/></block></list></block></block><block s="doChangeVar"><l>i</l><l>1</l></block></script></block><block s="doReport"><block var="result"/></block></script></block></script></block-definition><block-definition s="all but last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="211.99999999999997" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing all but the last word, with one space between words and no spaces at the beginning or end.  (Note: consider using SENTENCE-&gt;LIST and processing the resulting list instead of doing recursion on sentences in text string form.  List operations are faster.)</comment><header></header><code></code><translations>pt:_ sem a última palavra&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>bl</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>bl</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block var="index"/><l>1</l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><l></l></block></script></block><block s="doUntil"><block s="reportLessThan"><block var="index"/><l>1</l></block><script><block s="doSetVar"><l>bl</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="bl"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doReport"><block var="bl"/></block></script></block></script></block-definition><block-definition s="first word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="236.00000000000003" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the first word, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>first</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>first</l><l></l></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>first</l><block s="reportJoinWords"><list><block var="first"/><block s="reportLetter"><block var="index"/><block var="sentence"/></block></list></block></block></script></block><block s="doReport"><block var="first"/></block></script></block></script></block-definition><block-definition s="last letter of %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="260" collapsed="false">Takes a text string as input, and reports the last character in the string.</comment><header></header><code></code><translations>pt:o último caractere de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportLetter"><block s="reportStringSize"><block var="word"/></block><block var="word"/></block></block></script></block-definition><block-definition s="last word of %&apos;sentence&apos;" type="reporter" category="operators"><comment x="0" y="0" w="262" collapsed="false">Takes a text string as input, divides it into words treating one or more spaces as a word separator (only spaces count; punctuation is part of the word) and reports a text string containing only the last word of the input, with no spaces before or after it.</comment><header></header><code></code><translations>pt:a última palavra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>last</l></list></block><block s="doWarp"><script><block s="doSetVar"><l>last</l><l></l></block><block s="doSetVar"><l>index</l><block s="reportStringSize"><block var="sentence"/></block></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportJoinWords"><list><l>empty </l><l>sentence</l></list></block></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><l>1</l></block><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block><script><block s="doSetVar"><l>last</l><block s="reportJoinWords"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><block var="last"/></list></block></block></script></block><block s="doReport"><block var="last"/></block></script></block></script></block-definition><block-definition s="empty word? %&apos;word&apos;" type="predicate" category="operators"><comment x="0" y="0" w="208.00000000000003" collapsed="false">Takes a text string as input, and reports TRUE if the string has no characters in it of any kind, otherwise false.</comment><header></header><code></code><translations>pt:a palavra _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportStringSize"><block var="word"/></block><l>0</l></block></block></script></block-definition><block-definition s="empty sentence? %&apos;sentence&apos;" type="predicate" category="operators"><comment x="0" y="0" w="221" collapsed="false">Takes a text string as input, and reports TRUE if the input contains no characters other than spaces (therefore, no words when the string is considered as a sentence), otherwise FALSE.</comment><header></header><code></code><translations>pt:a frase _ está vazia&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportEquals"><block s="reportStringSize"><block var="sentence"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doUntil"><block s="reportOr"><block s="reportEquals"><block var="index"/><block s="reportStringSize"><block var="sentence"/></block></block><block s="reportNot"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportEquals"><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:füge Wörter zusammen _&#xD;ca:uneix les paraules _&#xD;es:unir las palabras _&#xD;fr:fusionne les mots _&#xD;pt:uma frase com as palavras _&#xD;</translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block s="reportCDR"><block var="words"/></block></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-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Liste $arrowRight Satz _&#xD;ca:llista $arrowRight frase _&#xD;es:lista $arrowRight frase _&#xD;fr:liste $arrowRight phrase _&#xD;pt:uma frase com as palavras em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><comment x="0" y="0" w="146.42857142857144" collapsed="false">report a list in which each item is one letter from the input word</comment><header></header><code></code><translations>de:Wort $arrowRight Liste _&#xD;ca:paraula $arrowRight llista _&#xD;es:palabra $arrowRight lista _&#xD;fr:mot $arrowRight liste _&#xD;pt:uma lista com os caracteres da palavra _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><comment x="0" y="0" w="158.57142857142858" collapsed="false">join all the items of the input list&#xD;into a single word, and report it</comment><header></header><code></code><translations>de:Liste $arrowRight Wort _&#xD;ca:llista $arrowRight paraula _&#xD;es:lista $arrowRight palabra _&#xD;fr:liste $arrowRight mot _&#xD;pt:uma palavra com os caracteres em _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block-definition></blocks><variables><variable name="numbers"><list struct="atomic" id="1204">1,-2,3,-4,5,-6,7,-8</list></variable><variable name="n"><l>9</l></variable><variable name="total"><list struct="atomic" id="1205">,-2,-4,-6,-8</list></variable></variables></project><media name="Lab 4.3 Number Cruncher" app="Snap! 5.4, http://snap.berkeley.edu" version="1"></media></snapdata>