<blocksapp="Snap! 4.1, http://snap.berkeley.edu"version="1"><block-definitions="append %'lists'"type="reporter"category="lists"><commentx="0"y="0"w="287"collapsed="false">Take any number of input lists, and create a new list containing the items of the input lists. So
 APPEND [A B] [C D]
where the [,,,] are lists reports the list
 [A B C D]
not [[A B] [C D]].</comment><header></header><code></code><inputs><inputtype="%mult%l"></input></inputs><script><blocks="doWarp"><script><blocks="doIf"><blocks="reportEquals"><blockvar="lists"/><blocks="reportNewList"><list></list></block></block><script><blocks="doReport"><blocks="reportNewList"><list></list></block></block></script></block><blocks="doIf"><blocks="reportEquals"><blocks="reportListLength"><blockvar="lists"/></block><l>1</l></block><script><blocks="doReport"><blocks="reportListItem"><l>1</l><blockvar="lists"/></block></block></script></block><blocks="doIf"><blocks="reportEquals"><blocks="reportListItem"><l>1</l><blockvar="lists"/></block><blocks="reportNewList"><list></list></block></block><script><blocks="doReport"><custom-blocks="append %mult%l"><blocks="reportCDR"><blockvar="lists"/></block></custom-block></block></script></block><blocks="doReport"><blocks="reportCONS"><blocks="reportListItem"><l>1</l><blocks="reportListItem"><l>1</l><blockvar="lists"/></block></block><custom-blocks="append %mult%l"><blocks="reportCONS"><blocks="reportCDR"><blocks="reportListItem"><l>1</l><blockvar="lists"/></block></block><blocks="reportCDR"><blockvar="lists"/></block></block></custom-block></block></block></script></block></script></block-definition><block-definitions="reverse %'data'"type="reporter"category="lists"><commentx="0"y="0"w="223"collapsed="false">Reports a new list containing the items of the input list, but in the opposite order.</comment><header></header><code></code><inputs><inputtype="%l"></input></inputs><script><blocks="doDeclareVariables"><list><l>helper</l></list></block><blocks="doSetVar"><l>helper</l><blocks="reifyScript"><script><blocks="doIf"><blocks="reportEquals"><blockvar="input"/><blocks="reportNewList"><list></list></block></block><script><blocks="doReport"><blockvar="result"/></block></script></block><blocks="doReport"><blocks="evaluate"><blockvar="helper"/><list><blocks="reportCDR"><blockvar="input"/></block><blocks="reportCONS"><blocks="reportListItem"><l>1</l><blockvar="input"/></block><blockvar="result"/></block></list></block></block></script><list><l>input</l><l>result</l></list></block></block><blocks="doWarp"><script><blocks="doReport"><blocks="evaluate"><blockvar="helper"/><list><blockvar="data"/><blocks="reportNewList"><list></list></block></list></block></block></script></block></script></block-definition><block-definitions="remove duplicates from %'data'"type="reporter"category="lists"><commentx="0"y="0"w="209"collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><inputs><inputtype="%l"></input></inputs><script><blocks="doWarp"><script><blocks="doIf"><blocks="reportEquals"><blockvar="data"/><blocks="reportNewList"><list></list></block></block><script><blocks="doReport"><blocks="reportNewList"><list></list></block></block></script></block><blocks="doIfElse"><blocks="reportListContainsItem"><blocks="reportCDR"><blockvar="data"/></block><blocks="reportListItem"><l>1</l><blockvar="data"/></block></block><script><blocks="doReport"><custom-blocks="remove duplicates from %l"><blocks="reportCDR"><blockvar="data"/></block></custom-block></block></script><script><blocks="doReport"><blocks="reportCONS"><blocks="reportListItem"><l>1</l><blockvar="data"/></block><custom-blocks="remove duplicates from %l"><blocks="reportCDR"><blockvar="data"/></block></custom-block></block></block></script></block></sc