kopia lustrzana https://github.com/backface/turtlestitch
				
				
				
			new library: Frequency Distribution Analysis, separated from "Bigger Data"
							rodzic
							
								
									2e4f52f40a
								
							
						
					
					
						commit
						9cb98f849a
					
				|  | @ -1,5 +1,8 @@ | |||
| # Snap<em>!</em> (BYOB) History | ||||
| 
 | ||||
| ###2018-11-02 | ||||
| * new library: Frequency Distribution Analysis, separated from "Bigger Data" | ||||
| 
 | ||||
| ## v4.2.2.4 | ||||
| ###2018-10-29 | ||||
| * Blocks: fixed #2234 (display all reachable local variables in drop-down menu) | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ animation_module.xml	Animation	glide, grow and rotate using easing functions. | |||
| pixel_module.xml	Pixels	manipulate costumes pixel-wise. | ||||
| audioComp_module.xml	Audio Comp	analyze, manipulate and generate sound samples. | ||||
| atomic_HOFs_module.xml	"Bigger" Data	[EXPERIMENTAL] crunch large lists very fast | ||||
| frequency_distribution_module.xml	Frequency Distribution Analysis	[EXPERIMENTAL] analyze data for frequency distribution | ||||
| make-variables.xml	create variables in program	declare global or sprite-local variables in a script | ||||
| json.xml	Deal with JSON data	Turn JSON strings into lists with the listify block, then retrieve data out of them by using the value at key block. | ||||
| parallel_module.xml	Parallelization	Run several scripts in parallel and wait until all are done. | ||||
|  |  | |||
|  | @ -1 +1 @@ | |||
| <blocks app="Snap! 4.2, http://snap.berkeley.edu" version="1"><block-definition s="$flash map %'fn' over %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicMap(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash keep %'test' from %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicKeep(fn, data);</l></block><list><block var="test"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash combine %'fn' with %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicCombine(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash sort %'data' by %'fn'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash reverse %'list'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition><block-definition s="$flash analyze %'data'" type="reporter" category="lists"><comment x="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><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="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><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash group %'data' by %'fn'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicGroup(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition></blocks> | ||||
| <blocks app="Snap! 4.2, http://snap.berkeley.edu" version="1"><block-definition s="$flash map %'fn' over %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicMap(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash keep %'test' from %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicKeep(fn, data);</l></block><list><block var="test"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash combine %'fn' with %'data'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>fn</l><l>data</l><l>proc</l></list><l>return proc.reportAtomicCombine(fn, data);</l></block><list><block var="fn"/><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash sort %'data' by %'fn'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicSort(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition><block-definition s="$flash reverse %'list'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>list</l></list><l>return new List(list.asArray().slice().reverse());</l></block><list><block var="list"/></list></block></block></script></block-definition></blocks> | ||||
|  | @ -0,0 +1 @@ | |||
| <blocks app="Snap! 4.2, http://snap.berkeley.edu" version="1"><block-definition s="$flash analyze %'data'" type="reporter" category="lists"><comment x="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><input type="%l"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="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><block var="data"/></list></block></block></script></block-definition><block-definition s="$flash group %'data' by %'fn'" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>data</l><l>fn</l><l>proc</l></list><l>return proc.reportAtomicGroup(data, fn);</l></block><list><block var="data"/><block var="fn"/></list></block></block></script></block-definition></blocks> | ||||
		Ładowanie…
	
		Reference in New Issue
	
	 jmoenig
						jmoenig