<snapdata remixID="13473488"><project name="searching lists warmup" 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="searching lists warmup"><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="longest word in %&apos;list of words&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="list of words"/><block s="reifyReporter"><autolambda><block s="reportVariadicGreaterThan"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="#1"/></block><block s="reportTextAttribute"><l><option>length</option></l><block var="#2"/></block></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></list></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos; and wait" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then waits for them all to complete.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo e espera&#xD;ca:executa en paral·lel _ i espera&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>threads</l></list></block><block s="doSetVar"><l>threads</l><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>is running?</l></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="fork"><block s="reifyScript"><script><block s="doRun"><block var="each script"/><list></list></block><block s="doSetVar"><l>is running?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><list></list></block><block s="doReport"><block s="reifyScript"><script><block s="doReport"><block var="is running?"/></block></script><list></list></block></block></script><list></list></block><list></list></block></autolambda><list><l>each script</l></list></block><block var="actions"/></block></block><block s="doWaitUntil"><block s="reportListIsEmpty"><block s="reportKeep"><block s="reifyPredicate"><autolambda><block s="evaluate"><block var="test"/><list></list></block></autolambda><list><l>test</l></list></block><block var="threads"/></block></block></block></script></block-definition><block-definition s="do in parallel %&apos;actions&apos;" type="command" category="control"><comment x="0" y="0" w="238.66666666666666" collapsed="false">Accepts any number of scripts as inputs.  Launches a separate thread for each of them, so they are done in parallel, then continues with the current script while they all run.&#xD;&#xD;This doesn&apos;t change how the Snap! scheduler works; the threads are not truly asynchronous. And there is no increase in speed.  Rather, the point of this block is to allow starting synchronized but independent scripts.</comment><header></header><code></code><translations>pt:executa _ em paralelo&#xD;ca:executa en paral·lel _&#xD;</translations><inputs><input type="%mult%cs"></input></inputs><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="actions"/></block><l>0</l></list></block><script><block s="fork"><block s="reportListItem"><l>1</l><block var="actions"/></block><list></list></block><custom-block s="do in parallel %mult%cs"><block s="reportCDR"><block var="actions"/></block></custom-block></script><list></list></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;ca:_ sense la primera lletra&#xD;es:todos menos la primera letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="doReport"><block s="reportJoinWords"><block s="reportCDR"><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></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➞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;ca:_ sense la primera paraula&#xD;es:todas menos la primera palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportCDR"><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but first of empty sentence.</l></custom-block></block></custom-block></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;ca:_ sense la darrera lletra&#xD;es:todos menos la última letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="doReport"><block s="reportJoinWords"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportTextSplit"><custom-block s="require nonempty %s %s"><block var="string"/><l>All but first of empty word.</l></custom-block><l><option>letter</option></l></block></block></block></block></block></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;ca:_ sense la darrera paraula&#xD;es:todos menos la última palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><block var="sentence"/></block></block></block></block></script></block></script><list></list></block><block s="doReport"><custom-block s="list $arrowRight sentence %l"><block s="reportListAttribute"><l><option>reverse</option></l><block s="reportCDR"><block s="reportListAttribute"><l><option>reverse</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>All but last of empty sentence.</l></custom-block></block></block></block></custom-block></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;ca:primera paraula de _&#xD;es:primera palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><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>First of empty sentence.</l></custom-block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="sentence"/></block></block></script></block></script><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>First of empty sentence.</l></custom-block></block></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;ca:primera lletra de _&#xD;es:última letra 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;ca:darrera paraula de _&#xD;es:última palabra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="doReport"><block s="reportListItem"><l><option>last</option></l><custom-block s="require nonempty %s %s"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block><l>Last of empty sentence.</l></custom-block></block></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;ca:paraula buida? _&#xD;es:¿palabra vacía? _&#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;ca:frase buida? _&#xD;es:¿oración vacía? _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><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="doReport"><block s="reportListIsEmpty"><custom-block s="sentence $arrowRight list %txt"><block var="sentence"/></custom-block></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 var="words"/></block><script><block s="doReport"><l></l></block></script><list></list></block><block s="doDeclareVariables"><list><l>first</l><l>bf</l></list></block><block s="doSetVar"><l>first</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="words"/></block><l><option>list</option></l></block><custom-block s="join words %mult%txt"><block s="reportListItem"><l>1</l><block var="words"/></block></custom-block><block s="reportListItem"><l>1</l><block var="words"/></block></block></block><block s="doSetVar"><l>bf</l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="bf"/></custom-block><script><block s="doReport"><block var="first"/></block></script><list></list></block><block s="doIf"><custom-block s="empty sentence? %txt"><block var="first"/></custom-block><script><block s="doReport"><block var="bf"/></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><block var="first"/><l> </l><block var="bf"/></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>word</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>ca:frase _&#xD;es:oración _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><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="doApplyExtension"><l>err_error(msg)</l><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>ca:notació textual de _&#xD;es:imprimible _&#xD;</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="require nonempty %&apos;text&apos; %&apos;message&apos;" type="reporter" category="operators" helper="true"><comment x="0" y="0" w="220" collapsed="false">Helper function for word/sentence library.&#xD;Reports its first input, unless that input is empty, in which case it gives its second input as an error message.</comment><header></header><code></code><translations>es:requerir no vacío _ _&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportIfElse"><block s="reportIsA"><block var="text"/><l><option>list</option></l></block><block s="reportListIsEmpty"><block var="text"/></block><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="text"/></block><l>0</l></list></block></block><script><custom-block s="error %txt"><block var="message"/></custom-block></script><script><block s="doReport"><block var="text"/></block></script></block></script></block-definition><block-definition s="first 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 first character in the string.</comment><header></header><code></code><translations>pt:a primeira palavra de _&#xD;ca:primera lletra de _&#xD;es:primera letra de _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doIfElse"><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="first letter of %txt"><l></l></custom-block></autolambda><list></list></block><block var="word"/></block></block></script><script><block s="doReport"><block s="reportLetter"><l>1</l><custom-block s="require nonempty %s %s"><block var="word"/><l>First of empty word.</l></custom-block></block></block></script></block></script></block-definition><block-definition s="combine the stuffs in the stuffs %&apos;names&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><block s="reportLetter"><block var="index"/><block s="reportListItem"><block var="i"/><block var="names"/></block></block><l><option>number</option></l></block><block s="reportListItem"><block var="i"/><block var="names"/></block><l></l></block></autolambda><list><l>value</l><l>index</l></list></block><block s="reportTextSplit"><block s="reportListItem"><block var="i"/><block var="names"/></block><l><option>letter</option></l></block></block></autolambda><list><l>lol</l><l>i</l></list></block><block var="names"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="%&apos;word&apos; is at least as long as %&apos;number&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThanOrEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><block var="word"/></block><block var="number"/></list></block></block></script></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="895"><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="896"></list></costumes><sounds><list struct="atomic" id="897"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="0" y="-1.4876033057851146" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="902"><costumes><list struct="atomic" id="903"></list></costumes><sounds><list struct="atomic" id="904"></list></sounds><blocks></blocks><variables></variables><scripts><script x="23.75945626477551" y="10"><block s="receiveGo"><comment w="90" collapsed="true">Add or change the names to what you want, test the function. &#xD;&#xD;Look inside the grey block...there&apos;s nothing there. Can you help find the longest name in the list? </comment></block><block s="doSetVar"><l>names</l><block s="reportNewList"><list><l>Brian</l><l>Carissa</l><l>Evangelina</l><l>Quincy</l><l>Ali</l><l>3</l><l>iiii8</l></list></block></block><block s="doSayFor"><custom-block s="longest word in %s"><block var="names"/></custom-block><l>2</l></block><block s="doSayFor"><block s="reportJoinWords"><list><l>longest one is </l><block s="reportTextAttribute"><l><option>length</option></l><custom-block s="longest word in %s"><block var="names"/></custom-block></block></list></block><l>2</l></block></script><script x="23.13888888888897" y="154.70360520094607"><block s="receiveKey"><l><option>1</option></l><list></list><comment w="138.13829787234044" collapsed="true">Make a list of numbers and store it in a variable. Make a custom block (a little bit like the one above) that goes and reports the SMALLEST NUMBER in your list. Say it for 2 seconds.  </comment></block><block s="doSetVar"><l>numbers</l><block s="reportNewList"><list><l>4</l><l>243</l><l>54</l><l>95</l></list></block></block><block s="doSayFor"><block s="reportListItem"><l>1</l><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="numbers"/><block s="reifyReporter"><autolambda><block s="reportVariadicLessThan"><list><block var="#1"/><block var="#2"/></list></block></autolambda><list><l>#1</l><l>#2</l></list></block></list></block></block><l>2</l></block></script><script x="26" y="306.6619385342784"><block s="receiveKey"><l><option>2</option></l><list></list><comment w="138.13829787234044" collapsed="true">Make a list of numbers and store it in a variable. Make a custom block (a little bit like the one above) that goes and reports the sum of all numbers in the list. Say this number for 2 seconds &#xD;Hint: Make a script variable called &quot;sum&quot; and keep adding to it inside of a for loop. Then ,report it after the loop. </comment></block><block s="doSetVar"><l>numbers 2</l><block s="reportNewList"><list><l>23</l><l>576</l><l>234</l><l>4532</l><l>78</l></list></block></block><block s="doSayFor"><custom-block s="join words %mult%txt"><list><block s="reportCombine"><block var="numbers 2"/><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><l>is the sum of the list numbers 2</l></list></custom-block><l>2</l></block></script><script x="29.069444444444343" y="450.30082742316677"><block s="receiveKey"><l><option>3</option></l><list></list><comment w="138.13829787234044" collapsed="true">Make a list of names and store it an a variable. Write a custom block that takes the list of names as an input and reports the average length of the names in the list.  &#xD;Hint: Make a script variable called sum to keep track of the total of all lengths of names, and keep adding to it inside of a for loop. Then, divide it by the number of names and report it! </comment></block><block s="doSetVar"><l>names 2</l><block s="reportNewList"><list><l>Andre</l><l>Ben</l><l>Colin</l><l>Donovan</l><l>Emanual</l><l>Imran</l></list></block></block><block s="doSayFor"><block s="reportJoinWords"><list><l>Average length of names is </l><block s="reportQuotient"><block s="reportCombine"><block s="reportTextAttribute"><l><option>length</option></l><block var="names 2"/></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><block s="reportListAttribute"><l><option>length</option></l><block var="names 2"/></block></block></list></block><l>2</l></block></script></scripts></sprite><watcher var="names" style="normal" x="3.041666666666515" y="2.0416666666666714" color="243,118,29" extX="80" extY="70"/><watcher var="names 2" style="normal" x="373" y="2.000001999999995" color="243,118,29" extX="80" extY="70"/><watcher var="numbers" style="normal" x="18" y="236" color="243,118,29" extX="80" extY="70"/><watcher var="numbers 2" style="normal" x="308" y="179" color="243,118,29" extX="80" extY="70"/></sprites></stage><variables><variable name="names"><list struct="atomic" id="1065">Brian,Carissa,Evangelina,Quincy,Ali,3,iiii8</list></variable><variable name="numbers"><list struct="atomic" id="1066">1,243,54,95</list></variable><variable name="numbers 2"><list struct="atomic" id="1067">23,576,234,4532,78</list></variable><variable name="names 2"><list struct="atomic" id="1068">Gojo,Naruto,Bakugo</list></variable></variables></scene></scenes></project><media name="searching lists warmup" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>