<snapdata remixID="13303925"><project name="Lab 4.5_Sample solution" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Lab 4.5_Sample solution"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="contains %&apos;List&apos; %&apos;value&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="List"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><block var="index"/><block var="List"/></block><block var="value"/></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></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="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but first of empty word.</l></custom-block></script><list></list></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="reportVariadicGreaterThan"><list><block var="i"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></list></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.000001" 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="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportCDR"><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>All but first of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></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="doIf"><block s="reportIsA"><block var="string"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="all but last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="string"/></block></block></script><list></list></block><block s="doWarp"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but last of empty word.</l></custom-block></script><list></list></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="reportVariadicEquals"><list><block var="i"/><block s="reportTextAttribute"><l><option>length</option></l><block var="string"/></block></list></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="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></block><block s="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportVariadicLessThan"><list><block var="index"/><block s="reportListAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block></autolambda><list><l>value</l><l>index</l></list></block><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>All but last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doUntil"><block s="reportVariadicLessThan"><list><block var="index"/><l>1</l></list></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" 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="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>First of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></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="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></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><list></list></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="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="last letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>Last of empty word.</l></custom-block></script><list></list></block><block s="doReport"><block s="reportLetter"><block s="reportTextAttribute"><l><option>length</option></l><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="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><block var="sentence"/></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l><option>last</option></l><block var="sentence"/></block></block></script></block></script><list></list></block><block s="doSetVar"><l>index</l><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>-1</l></block></script></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block><script><custom-block s="error %txt"><l>Last of empty sentence.</l></custom-block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><l>1</l></list></block><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></list></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="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></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><list></list></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" 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="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="empty word? %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><l>0</l></list></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="doIf"><block s="reportIsA"><block var="sentence"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportListIsEmpty"><block var="sentence"/></block></block></script><list></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block><l>0</l></list></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="index"/><block s="reportTextAttribute"><l><option>length</option></l><block var="sentence"/></block></list></block><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></list></block><script><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><block s="reportVariadicEquals"><list><block s="reportLetter"><block var="index"/><block var="sentence"/></block><l> </l></list></block></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><comment x="0" y="0" w="230.66666666666666" collapsed="false">Like JOIN, takes any number of words (text strings) and reports a sentence with its inputs concatenated, but inserts a blank space between the inputs.&#xD;Consider using SENTENCE (Lists palette) instead.</comment><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="doIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-block></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><script><block s="doIfElse"><block s="reportListIsEmpty"><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><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-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><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></list></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></list></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><list></list></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"><comment x="0" y="0" w="165.33333333333334" collapsed="false">Takes a sentence in list form and reports the sentence as a text string.</comment><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"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><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="reportKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></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="doIf"><block s="reportIsA"><block var="word"/><l><option>list</option></l></block><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="word $arrowRight list %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><list></list></block><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="doIf"><block s="reportListIsEmpty"><block var="list"/></block><script><block s="doReport"><block var="list"/></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>list</option></l></block></autolambda><list></list></block><block var="list"/></block><l></l></list></block><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script><list></list></block><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><block s="reportNewList"><list><custom-block s="list $arrowRight word %l"><l/></custom-block></list></block><l></l></block></autolambda><list></list></block><block var="list"/></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="phrase"/></block><script><block s="doReport"><block s="reportNewList"><list></list><comment w="224.66666666666666" collapsed="true">Workaround for stupid append misfeature.</comment></block></block></script><list></list></block><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><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="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).</comment><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="Index of %&apos;List&apos; %&apos;value&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="List"/></block><script><block s="doIf"><custom-block s="contains %s %s"><block var="List"/><block var="value"/><comment w="90" collapsed="false">the custom &quot;contains&quot; block from previous exercise</comment></custom-block><script><block s="doReport"><block s="reportListIndex"><block var="value"/><block var="List"/></block></block></script><list></list></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><l>-1</l></block></script></block-definition><block-definition s="First e word %&apos;List&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="List"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><block var="index"/><block var="List"/></block></block><l>e</l></list></block><script><block s="doReport"><block s="reportListItem"><block var="index"/><block var="List"/></block></block></script><list></list></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="First Word that starts with %&apos;List&apos; %&apos;Letter&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><l>1</l></block><block s="doRepeat"><block s="reportListAttribute"><l><option>length</option></l><block var="List"/></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportLetter"><l>1</l><block s="reportListItem"><block var="index"/><block var="List"/></block></block><block var="Letter"/></list></block><script><block s="doReport"><block s="reportListItem"><block var="index"/><block var="List"/></block></block></script><list></list></block><block s="doChangeVar"><l>index</l><l>1</l></block></script></block><block s="doReport"><l></l></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="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1624"><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="1625"></list></costumes><sounds><list struct="atomic" id="1626"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="-0.9944751381215156" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="1631"><costumes><list struct="atomic" id="1632"></list></costumes><sounds><list struct="atomic" id="1633"></list></sounds><blocks></blocks><variables></variables><scripts><script x="51" y="44.5"><block s="doSetVar"><l>Names</l><block s="reportNewList"><list><l>Jeff</l><l>Jeremy</l><l>Waldo</l><l>Lucy</l></list></block><comment w="90" collapsed="false">initialize names list</comment></block></script><script x="54" y="101.8333333333334"><custom-block s="contains %s %s"><block var="Names"/><l>joff</l><comment w="90" collapsed="false">returns True if word found in list</comment></custom-block></script><script x="56" y="168.83333333333337"><custom-block s="Index of %s %s"><block var="Names"/><l>John</l><comment w="90" collapsed="false">returns the index of the word if found in the list.  otherwise returns -1</comment></custom-block></script><script x="50" y="265.6666666666665"><custom-block s="First e word %s"><block var="Names"/><comment w="90" collapsed="false">reports the first word that begins with the letter &apos;e&apos;, otherwise report blank</comment></custom-block></script><script x="65" y="403.83333333333337"><custom-block s="First Word that starts with %s %s"><block var="Names"/><l>w</l><comment w="90" collapsed="false">reports the first word beginning with the letter specified by the parameter, otherwise reports blank</comment></custom-block></script></scripts></sprite><watcher var="Names" style="normal" x="10" y="10" color="243,118,29" extX="80" extY="124"/></sprites></stage><variables><variable name="Names"><list struct="atomic" id="1660">Jeff,Rick,Waldo,Lucy,Emery</list></variable></variables></scene></scenes></project><media name="Lab 4.5_Sample solution" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>