<blocksapp="Snap! 4.2, http://snap.berkeley.edu"version="1"><block-definitions="$flash analyze %'data'"type="reporter"category="lists"><commentx="0"y="0"w="149"collapsed="false">returns a frequency analysis of the argument list, represented as a two-column table, where the first column contains the unique values and the second column their occurrences</comment><header></header><code></code><translations></translations><inputs><inputtype="%l"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>list</l></list><l>var dict = new Map(),
 result = [],
 data = list.asArray(),
 len = data.length,
 i;
for (i = 0; i < len; i += 1) {
 if (dict.has(data[i])) {
 dict.set(data[i], dict.get(data[i]) + 1);
 } else {
 dict.set(data[i], 1);
 }
}
dict.forEach(function (value, key) {
 result.push(new List([key, value]));
});
return new List(result);</l></block><list><blockvar="data"/></list></block></block></script></block-definition><block-definitions="$flash group %'data' by %'fn'"type="reporter"category="lists"><header></header><code></code><translations></translations><inputs><inputtype="%l"></input><inputtype="%repRing"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicGroup(data, fn);</l></block><list><blockvar="data"/><blockvar="fn"/></list></block></block></script></block-definition><block-definitions="$flash sort %'data' by %'fn'"type="reporter"category="lists"><header></header><code></code><translations></translations><inputs><inputtype="%l"></input><inputtype="%predRing"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><blockvar="data"/><blockvar="fn"/></list></block></block></script></block-definition><block-definitions="histogram of %'data' from: %'floor' to: %'ceiling' interval: %'interval'"type="reporter"category="lists"><header></header><code></code><translations></translations><inputs><inputtype="%l"></input><inputtype="%n"></input><inputtype="%n"></input><inputtype="%n">1</input></inputs><script><blocks="doReport"><custom-blocks="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><custom-blocks="$flash sort %l by %predRing"><custom-blocks="$flash analyze %l"><blockvar="data"/></custom-block><blocks="reifyPredicate"><autolambda><blocks="reportLessThan"><blocks="reportListItem"><l>1</l><l/></block><blocks="reportListItem"><l>1</l><l/></block></block></autolambda><list></list></block></custom-block><blocks="reifyReporter"><autolambda><blocks="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><blockvar="floor"/><blockvar="ceiling"/><blocks="reifyReporter"><autolambda><blocks="reportSum"><l></l><blockvar="interval"/></block></autolambda><list></list></block><blocks="reifyReporter"><autolambda><blocks="reportNewList"><list><l></l><l>0</l></list></block></autolambda><list></list></block></custom-block></block></script></block-definition><block-definitions="histogram of %'data' grouped by: %'key' from: %'floor' to: %'ceiling' interval: %'interval'"type="reporter"category="lists"><header></header><code></code><translations></translations><inputs><inputtype="%l"></input><inputtype="%repRing"></input><inputtype="%n"></input><inputtype="%n"></input><inputtype="%repRing"></input></inputs><script><blocks="doReport"><custom-blocks="fill %l key: %repRing from: %n to: %n interval: %repRing with: %repRing"><custom-blocks="$flash sort %l by %predRing"><custom-blocks="$flash group %l by %repRing"><blockvar="data"/><blockvar="key"/></custom-block><blocks="reifyPredicate"><autolambda><blocks="re