<snapdata remixID="11506765"><project name="Custom Blocks" app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="Custom Blocks"><notes></notes><palette><category name="Colors" color="209,107,255,1"/><category name="Misc" color="194,255,36,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="tell %&apos;sprite&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%obj"></input><input type="%cs"></input></inputs><script><block s="doTellTo"><block var="sprite"/><block var="action"/><list></list></block></script></block-definition><block-definition s="color %&apos;clr&apos;" type="reporter" category="Colors"><comment x="0" y="0" w="90" collapsed="false">Reports the color</comment><header></header><code></code><translations></translations><inputs><input type="%clr"></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportVariadicProduct"><list><block s="reportTextSplit"><custom-block s="substring of %txt before %txt"><custom-block s="substring of %txt after %txt"><block s="reportJoinWords"><list><block var="clr"/></list></block><l>(</l></custom-block><l>)</l></custom-block><l><option>csv</option></l></block><block s="reportNewList"><list><l>1</l><l>1</l><l>1</l><l>255</l></list></block></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="multiline %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o texto multilinha _&#xD;ca:multilínia _&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block var="text"/></block></script></block-definition><block-definition s="substring of %&apos;string&apos; before %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="175.33333333333334" collapsed="false">Reports the part of the first string up to the first instance of the second string inside it.  If the second string isn&apos;t found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;ca:part del text _ anterior a _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><block var="string"/><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>1</l></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><l>1</l><block s="reportDifference"><block var="index"/><l>1</l></block></custom-block></block></block></block></script></block-definition><block-definition s="substring of %&apos;string&apos; after %&apos;marker&apos;" type="reporter" category="operators"><comment x="0" y="0" w="203.33333333333334" collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string.  If the second string isn&apos;t found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _&#xD;ca:part del text _ posterior a _&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doDeclareVariables"><list><l>index</l><l>end</l></list></block><block s="doSetVar"><l>index</l><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block></block><block s="doSetVar"><l>end</l><block s="reportVariadicSum"><list><block var="index"/><block s="reportStringSize"><block var="marker"/></block></list></block></block><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="index"/><l>0</l></block><l></l><block s="reportIfElse"><block s="reportGreaterThan"><block var="end"/><block s="reportStringSize"><block var="string"/></block></block><l></l><custom-block s="substring of %txt from position %n to position %n inclusive"><block var="string"/><block var="end"/><l></l></custom-block></block></block></block></script></block-definition><block-definition s="position of %&apos;small&apos; in %&apos;large&apos;" type="reporter" category="operators"><comment x="0" y="0" w="294" collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.&#xD;If it&apos;s not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _&#xD;ca:posició de _ en _&#xD;</translations><inputs><input type="%s"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportIfElse"><custom-block s="use case-independent comparison"></custom-block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><custom-block s="to lower case %txt"><block var="small"/></custom-block><custom-block s="to lower case %txt"><block var="large"/></custom-block></list></block><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><block var="small"/><block var="large"/></list></block></block></block></script></block-definition><block-definition s="use case-independent comparisons %&apos;tf&apos;" type="command" category="operators"><comment x="0" y="0" w="225.33333333333334" collapsed="false">If input is TRUE, comparisons made by functions in the string library will be case-independent (so &quot;FOO&quot; = &quot;foo&quot;).  This is the default.&#xD;If input is FALSE, comparisons will be exact.</comment><header></header><code></code><translations>pt:altera comparações ignorando distinção minúsculas/maiúsculas para _&#xD;ca:ignora la diferenciació de majúscules _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doIfElse"><block s="reportNot"><block var="tf"/></block><script><block s="doApplyExtension"><l>var_declare(scope, name)</l><list><l>global</l><l>_case indepent</l></list></block><block s="doApplyExtension"><l>var_set(name, val)</l><list><l>_case indepent</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></script><script><block s="doApplyExtension"><l>var_delete(name)</l><list><l>_case indepent</l></list></block></script></block></script></block-definition><block-definition s="substring of %&apos;str&apos; from position %&apos;start&apos; to position %&apos;end&apos; inclusive" type="reporter" category="operators"><comment x="0" y="0" w="297.3333333333333" collapsed="false">Reports the portion of the first input (string) starting at the position given by the second input (counting from 1, like LETTER n OF) and ending at the position given by the third input (also counting from 1).  If the third input is empty, reports the portion from the first position to the end of the string.&#xD;If a position number is negative, counts from the end backward, so -1 is the last character, -2 is the next to last, etc.</comment><header></header><code></code><translations>pt:o texto de _ entre as posições _ e _ , inclusive&#xD;ca:part del text _ des de la posició _ fins _&#xD;</translations><inputs><input type="%txt"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportLetter"><block s="reportNumbers"><block s="reportIfElse"><block s="reportLessThan"><block var="start"/><l>0</l></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block><block s="reportStringSize"><block var="str"/></block></list></block><block var="start"/></block><block s="reportIfElse"><block s="reportEquals"><block var="end"/><l>0</l></block><block s="reportStringSize"><block var="str"/></block><block s="reportIfElse"><block s="reportLessThan"><block var="end"/><l>0</l></block><block s="reportVariadicSum"><list><block s="reportVariadicSum"><list><block var="end"/><l>1</l></list></block><block s="reportStringSize"><block var="str"/></block></list></block><block var="end"/></block></block></block><block var="str"/></block></block></block></script></block-definition><block-definition s="text %&apos;string&apos; contains %&apos;marker&apos;" type="predicate" category="operators"><comment x="0" y="0" w="218" collapsed="false">Reports True if the first input string contains the second input string, otherwise false.&#xD;&#xD;Comparison is case-independent by default; use USE CASE-INDEPENDENT COMPARISONS to change that.</comment><header></header><code></code><translations>pt:o texto de _ antes de _&#xD;ca:text _ conté _ ?&#xD;</translations><inputs><input type="%txt"></input><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportGreaterThan"><custom-block s="position of %s in %txt"><block var="marker"/><block var="string"/></custom-block><l>0</l></block></block></script></block-definition><block-definition s="to lower case %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="275.3333333333333" collapsed="false">Reports the input text with lower case letters instead of capital letters in the input.  Uses the user&apos;s locale&apos;s rules for case conversion.</comment><header></header><code></code><translations>pt:em minúsculas _&#xD;ca:_ a minúscules&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>txt_lowercase(txt)</l><list><block s="reportJoinWords"><list><block var="text"/></list></block></list></block></block></script></block-definition><block-definition s="use case-independent comparison" type="predicate" category="sensing"><header></header><code></code><translations>ca:comparacions ignorant majúscules?&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>result</l></list></block><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportApplyExtension"><l>var_get(name)</l><list><l>_case indepent</l></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>result</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><l></l></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="%&apos;a&apos; + %&apos;b&apos; by %&apos;percent&apos; % as %&apos;which?&apos;" type="reporter" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%l"></input><input type="%n">50</input><input type="%s" readonly="true">light<options>light (add)=light&#xD;pigment (subtract)=pigment</options></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportAnd"><custom-block s="is %l a color?"><block var="a"/></custom-block><custom-block s="is %l a color?"><block var="b"/></custom-block></block></block><script><block s="doReport"><l>Error: not a color</l></block></script></block><block s="doReport"><custom-block s="RGBA list %l"><block s="reportConcatenatedLists"><list><block s="evaluate"><block s="reportIfElse"><block s="reportEquals"><block var="which?"/><l>pigment</l></block><block s="reifyReporter"><autolambda><block s="reportDifference"><l></l><l></l></block></autolambda><list></list></block><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block></block><list><block s="reportVariadicProduct"><list><custom-block s="%s of color %l"><l>RGB</l><block var="a"/></custom-block><block s="reportQuotient"><block var="percent"/><l>100</l></block></list></block><block s="reportVariadicProduct"><list><custom-block s="%s of color %l"><l>RGB</l><block var="b"/></custom-block><block s="reportQuotient"><block s="reportDifference"><l>100</l><block var="percent"/></block><l>100</l></block></list></block></list></block><block s="reportNewList"><list><l>255</l></list></block></list></block></custom-block></block></script></block-definition><block-definition s="%&apos;head&apos; in front of stream %&apos;tail&apos;" type="reporter" category="lists"><comment w="418.6106770833333" collapsed="false">The stream version of IN FRONT OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is here in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a prefixação de _ ao canal _&#xD;</translations><inputs><input type="%s"></input><input type="%anyUE"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="head"/><block var="tail"/><block s="reportBoolean"><l><bool>false</bool></l></block><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block></script></block-definition><block-definition s="head of stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of ITEM 1 OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:o primeiro item do canal _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="stream"/></block></block></script></block-definition><block-definition s="tail of stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of ALL BUT FIRST OF.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:um canal com todos os itens de _ menos o primeiro&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportListItem"><l>3</l><block var="stream"/></block><script><block s="doReport"><block s="reportListItem"><l>4</l><block var="stream"/></block></block></script></block><block s="doReplaceInList"><l>4</l><block var="stream"/><block s="evaluate"><block s="reportListItem"><l>2</l><block var="stream"/></block><list></list></block></block><block s="doReplaceInList"><l>3</l><block var="stream"/><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doReport"><block s="reportListItem"><l>4</l><block var="stream"/></block></block></script></block></script></block-definition><block-definition s="map %&apos;function&apos; over stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of variadic MAP (any number of input lists, like&#xD;MULTIMAP in the list utilities library).&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a aplicação de _ aos itens dos canais _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block s="reportListItem"><l>1</l><block var="stream"/></block><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="evaluate"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="head of stream %l"><l/></custom-block></autolambda><list></list></block><block var="stream"/></block></block><custom-block s="map %repRing over stream %mult%l"><block var="function"/><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="tail of stream %l"><l/></custom-block></autolambda><list></list></block><block var="stream"/></block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from stream %&apos;stream&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of KEEP.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:os itens tais que _ do canal _&#xD;</translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><block s="reportEquals"><block var="stream"/><block s="reportNewList"><list></list></block></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><custom-block s="head of stream %l"><block var="stream"/></custom-block></list></block><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="keep items such that %predRing from stream %l"><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from stream %l"><block var="pred"/><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="show stream %&apos;stream&apos; %&apos;number&apos;" type="reporter" category="lists"><comment w="364" collapsed="false">The inputs are a stream and a positive integer.  SHOW STREAM reports a&#xD;regular finite list of length less than (for short finite streams) or equal to the&#xD;second input.  It&apos;s useful because an infinite stream can&apos;t be displayed in a&#xD;finite amount of time.</comment><header></header><code></code><translations>pt:uma lista com os itens do canal _ até ao _ º&#xD;</translations><inputs><input type="%l"></input><input type="%n">10</input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="stream"/></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIf"><block s="reportEquals"><block var="number"/><l>0</l></block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="show stream %l %n"><custom-block s="tail of stream %l"><block var="stream"/></custom-block><block s="reportDifference"><block var="number"/><l>1</l></block></custom-block></block></block></script></block-definition><block-definition s="stream %&apos;items&apos;" type="reporter" category="lists"><comment x="0" y="0" w="343.3333333333333" collapsed="false">Make a stream from a finite collection of items, like the LIST primitive.&#xD;Since this block is typically used for small amounts of data, it does not&#xD;delay computation of its inputs.</comment><header></header><code></code><translations>pt:um canal com _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="items"/></block><script><block s="doReport"><block var="items"/></block></script></block><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block s="reportListItem"><l>1</l><block var="items"/></block><custom-block s="stream %mult%s"><block s="reportCDR"><block var="items"/></block></custom-block></custom-block></block></script></block-definition><block-definition s="sieve %&apos;stream&apos;" type="reporter" category="lists"><comment w="478" collapsed="false">Call this block with STREAM WITH NUMBERS FROM 2&#xD;as its input to get the infinite stream of all the prime numbers.&#xD;&#xD;It&apos;s called SIEVE because the algorithm it uses is the Sieve of&#xD;Eratosthenes (clickable link):&#xD;https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes&#xD;&#xD;Look inside; it&apos;s a beautifully elegant algorithm.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:a crivagem do canal _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><custom-block s="head of stream %l"><block var="stream"/></custom-block><custom-block s="sieve %l"><custom-block s="keep items such that %predRing from stream %l"><block s="reifyPredicate"><autolambda><block s="reportGreaterThan"><block s="reportModulus"><l></l><custom-block s="head of stream %l"><block var="stream"/></custom-block></block><l>0</l></block></autolambda><list></list></block><custom-block s="tail of stream %l"><block var="stream"/></custom-block></custom-block></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="stream with numbers from %&apos;start&apos;" type="reporter" category="lists"><comment x="0" y="0" w="418.6106770833333" collapsed="false">The stream version of NUMBERS FROM 1 TO, with no&#xD;ending number because it reports the infinite stream of all&#xD;the integers greater than or equal to its input.&#xD;&#xD;Read the code!  It&apos;s deceptively simple.&#xD;&#xD;Streams, also called lazy lists, are like lists except that&#xD;items are not computed until they&apos;re needed.  This allows&#xD;for more efficient handling of large computed lists, and&#xD;even infinite lists.  The only piece of magic is in &#xD;IN FRONT OF STREAM, whose second input is of type &#xD;Unevaluated, which means that it&apos;s a procedure, with &#xD;a sort of invisible gray ring. So HEAD OF STREAM is just &#xD;ITEM 1 OF, but TAIL OF STREAM has a CALL block &#xD;to make the computation happen.&#xD;&#xD;For a tutorial introduction to streams, read SICP 3.5:&#xD;https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_sec_3.5&#xD;or Brian&apos;s lecture notes (start on page 74):&#xD;https://people.eecs.berkeley.edu/&#126;bh/61a-pages/Volume2/notes.pdf&#xD;The above are clickable links!</comment><header></header><code></code><translations>pt:um canal com os números a partir de _&#xD;</translations><inputs><input type="%n">1</input></inputs><script><block s="doReport"><custom-block s="%s in front of stream %anyUE"><block var="start"/><custom-block s="stream with numbers from %n"><block s="reportVariadicSum"><list><block var="start"/><l>1</l></list></block></custom-block></custom-block></block></script></block-definition><block-definition s="stream demo" type="command" category="lists"><comment x="0" y="0" w="174.66666666666666" collapsed="true">Read the code while running it, </comment><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>ones</l><l>ints</l><l>primes</l></list></block><block s="doSetVar"><l>ones</l><custom-block s="%s in front of stream %anyUE"><l>1</l><block var="ones"/></custom-block></block><block s="doSetVar"><l>ints</l><custom-block s="%s in front of stream %anyUE"><l>1</l><custom-block s="map %repRing over stream %mult%l"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><l></l><l></l></list></block></autolambda><list></list></block><list><block var="ones"/><block var="ints"/></list></custom-block></custom-block></block><block s="doSetVar"><l>primes</l><custom-block s="sieve %l"><custom-block s="stream with numbers from %n"><l>2</l></custom-block></custom-block></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="ones"/><l>10</l></custom-block><l>2</l></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="ints"/><l>10</l></custom-block><l>2</l></block><block s="doSayFor"><custom-block s="show stream %l %n"><block var="primes"/><l>10</l></custom-block><l>2</l></block></script></block-definition><block-definition s="color r: %&apos;r&apos; g: %&apos;g&apos; b: %&apos;b&apos; a: %&apos;a&apos;" type="reporter" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%n"></input><input type="%n"></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportNewCostume"><block s="reportNewList"><list><block s="reportNewList"><list><block var="r"/><block var="g"/><block var="b"/><block var="a"/></list></block></list></block><l>1</l><l>1</l></block></block></script></block-definition><block-definition s="RGBA list %&apos;list&apos;" type="reporter" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="color r: %n g: %n b: %n a: %n"><block s="reportListItem"><l>1</l><block var="list"/></block><block s="reportListItem"><l>2</l><block var="list"/></block><block s="reportListItem"><l>3</l><block var="list"/></block><block s="reportListItem"><l>4</l><block var="list"/></block></custom-block></block></script></block-definition><block-definition s="is %&apos;color&apos; a color?" type="predicate" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAnd"><block s="reportAnd"><block s="reportIsA"><block var="color"/><l><option>costume</option></l></block><block s="reportEquals"><block s="reportListAttribute"><l><option>length</option></l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="color"/></block></block><l>1</l></block></block><block s="reportAnd"><block s="reportEquals"><block s="reportGetImageAttribute"><l><option>width</option></l><block var="color"/></block><l>1</l></block><block s="reportEquals"><block s="reportGetImageAttribute"><l><option>height</option></l><block var="color"/></block><l>1</l></block></block></block></block></script></block-definition><block-definition s="%&apos;which?&apos; of color %&apos;color&apos;" type="reporter" category="Colors"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">red<options>red&#xD;green&#xD;blue&#xD;alpha&#xD;RGBA&#xD;RGB</options></input><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><custom-block s="is %l a color?"><block var="color"/></custom-block></block><script><block s="doReport"><l>Error: not a color</l></block></script></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block var="which?"/><l>RGBA</l></block><block s="reportEquals"><block var="which?"/><l>RGB</l></block></block><script><block s="doReport"><block s="reportListItem"><block s="reportIfElse"><block s="reportEquals"><block var="which?"/><l>RGBA</l></block><block s="reportNumbers"><l>1</l><l>4</l></block><block s="reportNumbers"><l>1</l><l>3</l></block></block><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="color"/></block></block></block></block></script></block><block s="doReport"><block s="reportListItem"><block s="reportListIndex"><block s="reportLetter"><l>1</l><block var="which?"/></block><block s="reportTextSplit"><l>rgba</l><l><option>letter</option></l></block></block><block s="reportListItem"><l>1</l><block s="reportGetImageAttribute"><l><option>pixels</option></l><block var="color"/></block></block></block></block></script></block-definition><block-definition s="$flag-2-0-205-0" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block></script></block-definition><block-definition s="sin ( %&apos;number&apos; )" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n">10</input></inputs><script><block s="doReport"><block s="reportMonadic"><l><option>sin</option></l><block var="number"/></block></block></script></block-definition><block-definition s="if %&apos;a&apos; = %&apos;b&apos; %&apos;true&apos;" type="command" category="Misc"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%cs"></input></inputs><script><block s="doIf"><block s="reportEquals"><block var="a"/><block var="b"/></block><script><block s="doRun"><block var="true"/><list></list></block></script></block></script></block-definition><block-definition s="$octagon-2-205-20-20" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doStopThis"><l><option>all</option></l></block></script></block-definition><block-definition s="let %&apos;a&apos; be %&apos;k&apos;" type="command" category="other"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%s"></input></inputs><script><block s="doSetVar"><l>a</l><block var="k"/></block></script></block-definition><block-definition s="else %&apos;a&apos;" type="predicate" category="control"><header></header><code></code><translations></translations><inputs><input type="%cs"></input></inputs><script><block s="doRun"><block var="a"/><list></list></block><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block-definition><block-definition s="dice 🎲" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportRandom"><l>1</l><l>6</l></block></block></script></block-definition><block-definition s="%&apos;a&apos; %&apos;choice&apos; %&apos;b&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s" readonly="true">+<options>+&#xD;-&#xD;*&#xD;/&#xD;^</options></input><input type="%n"></input></inputs><script><block s="doReport"><block s="reportIfElse"><block s="reportEquals"><block var="choice"/><l>+</l></block><block s="reportVariadicSum"><list><block var="a"/><block var="b"/></list></block><block s="reportIfElse"><block s="reportEquals"><block var="choice"/><l>-</l></block><block s="reportDifference"><block var="a"/><block var="b"/></block><block s="reportIfElse"><block s="reportEquals"><block var="choice"/><l>*</l></block><block s="reportVariadicProduct"><list><block var="a"/><block var="b"/></list></block><block s="reportIfElse"><block s="reportEquals"><block var="choice"/><l>/</l></block><block s="reportQuotient"><block var="a"/><block var="b"/></block><block s="reportIfElse"><block s="reportEquals"><block var="choice"/><l>^</l></block><block s="reportPower"><block var="a"/><block var="b"/></block><l></l></block></block></block></block></block></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><comment w="211" collapsed="false">Like REPORT [] but it isn&apos;t. Useful for things that you won&apos;t care about reporting</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></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="994"><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="995"></list></costumes><sounds><list struct="atomic" id="996"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite(3)" idx="1" x="-5" y="19" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="55.48799999999998,0,81.60000000000001,1" pen="tip" id="1001"><costumes><list id="1002"><item><ref mediaID="Sprite(3)_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="1003"></list></sounds><blocks></blocks><variables></variables><scripts></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="Custom Blocks" app="Snap! 7, https://snap.berkeley.edu" version="2"><costume name="Untitled" center-x="122.5" center-y="102" image="data:image/png;base64,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" mediaID="Sprite(3)_cst_Untitled"/></media></snapdata>