Last active
November 20, 2018 20:04
-
-
Save s5bug/3dd6d98ae2f9986c41980994c3ea661d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<blocks app="Snap! 4.2, http://snap.berkeley.edu" version="1"><block-definition s="applyFunc %'f' %'v'" type="reporter" category="operators"><header/><code/><translations>en:_ _ | |
</translations><inputs><input type="%s"/><input type="%s"/></inputs><script><block s="doReport"><block s="evaluate"><block var="f"/><list><block var="v"/></list></block></block></script></block-definition><block-definition s="lambda %'i' %'r'" type="reporter" category="operators"><header/><code/><translations>en:λ _ . _ | |
</translations><inputs><input type="%upvar"/><input type="%repRing"/></inputs><script><block s="doReport"><block s="reifyScript"><script><block s="doSetVar"><l>i</l><block var="#1"/></block><block s="doReport"><block s="evaluate"><block var="r"/><list/></block></block></script><list><l>#1</l></list></block></block></script></block-definition><block-definition s="church %'i'" type="reporter" category="operators"><header/><code/><translations>en:_ $arrowRight λ | |
</translations><inputs><input type="%n"/></inputs><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>f</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="churchHelper %n %s %s"><block var="i"/><block var="f"/><block var="x"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="churchHelper %'i' %'f' %'x'" type="reporter" category="other"><header/><code/><translations/><inputs><input type="%n"/><input type="%s"/><input type="%s"/></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="i"/><l>0</l></block><script><block s="doReport"><block var="x"/></block></script><script><block s="doReport"><custom-block s="applyFunc %s %s"><block var="f"/><custom-block s="churchHelper %n %s %s"><block s="reportDifference"><block var="i"/><l>1</l></block><block var="f"/><block var="x"/></custom-block></custom-block></block></script></block></script></block-definition><block-definition s="reverseChurch %'f'" type="reporter" category="operators"><header/><code/><translations>en:_ $arrowRight n | |
</translations><inputs><input type="%obj"/></inputs><script><block s="doReport"><block s="evaluate"><block s="evaluate"><block var="f"/><list><custom-block s="lambda %upvar %repRing"><l>i</l><block s="reifyReporter"><autolambda><block s="reportSum"><block var="i"/><l>1</l></block></autolambda><list/></block></custom-block></list></block><list><l>0</l></list></block></block></script></block-definition><block-definition s="succ" type="reporter" category="variables"><header/><code/><translations>en:successor | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>f</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="f"/><custom-block s="applicationThree %s %s %s"><block var="n"/><block var="f"/><block var="x"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="plus" type="reporter" category="variables"><header/><code/><translations>en:additive | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>f</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="m"/><block var="f"/><custom-block s="applicationThree %s %s %s"><block var="n"/><block var="f"/><block var="x"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="mult" type="reporter" category="variables"><header/><code/><translations>en:multiplicative | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>f</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="m"/><custom-block s="applyFunc %s %s"><block var="n"/><block var="f"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="pow" type="reporter" category="variables"><header/><code/><translations>en:exponentiative | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>b</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>e</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="e"/><block var="b"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="pred" type="reporter" category="variables"><header/><code/><translations>en:predecessor | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><custom-block s="first"/><custom-block s="applicationThree %s %s %s"><block var="n"/><custom-block s="shiftAndIncrement"/><custom-block s="applicationThree %s %s %s"><custom-block s="pair"/><custom-block s="church %n"><l>0</l></custom-block><custom-block s="church %n"><l>0</l></custom-block></custom-block></custom-block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="sub" type="reporter" category="variables"><header/><code/><translations>en:subtractive | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="n"/><custom-block s="pred"/><block var="m"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="true" type="reporter" category="variables"><header/><code/><translations>en:true | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>y</l><block s="reifyReporter"><autolambda><block var="x"/></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="false" type="reporter" category="variables"><header/><code/><translations>en:false | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>y</l><block s="reifyReporter"><autolambda><block var="y"/></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="and" type="reporter" category="variables"><header/><code/><translations>en:and | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>q</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="p"/><block var="q"/><block var="p"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="or" type="reporter" category="variables"><header/><code/><translations>en:or | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>q</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="p"/><block var="p"/><block var="q"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="not" type="reporter" category="variables"><header/><code/><translations>en:not | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="p"/><custom-block s="false"/><custom-block s="true"/></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="ifthenelse" type="reporter" category="variables"><header/><code/><translations>en:if, then, else | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>a</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>b</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="p"/><block var="a"/><block var="b"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="iszero" type="reporter" category="variables"><header/><code/><translations>en:is zero? | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><block var="n"/><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="false"/></autolambda><list/></block></custom-block></custom-block><custom-block s="true"/></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="leq" type="reporter" category="variables"><header/><code/><translations>en:≤ | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><custom-block s="iszero"/><custom-block s="applicationThree %s %s %s"><custom-block s="sub"/><block var="m"/><block var="n"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="churchBool %'b'" type="reporter" category="operators"><header/><code/><translations>en:_ $arrowRight λ | |
</translations><inputs><input type="%b"/></inputs><script><block s="doIfElse"><block var="b"/><script><block s="doReport"><custom-block s="true"/></block></script><script><block s="doReport"><custom-block s="false"/></block></script></block></script></block-definition><block-definition s="reverseChurchBool %'f'" type="reporter" category="operators"><header/><code/><translations>en:_ $arrowRight b | |
</translations><inputs><input type="%obj"/></inputs><script><block s="doReport"><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><custom-block s="ifthenelse"/><block var="f"/></custom-block><block s="reportBoolean"><l><bool>true</bool></l></block></custom-block><block s="reportBoolean"><l><bool>false</bool></l></block></custom-block></block></script></block-definition><block-definition s="geq" type="reporter" category="variables"><header/><code/><translations>en:≥ | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><custom-block s="leq"/><block var="n"/><block var="m"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="eq" type="reporter" category="variables"><header/><code/><translations>en:= | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><custom-block s="and"/><custom-block s="applicationThree %s %s %s"><custom-block s="leq"/><block var="m"/><block var="n"/></custom-block><custom-block s="applicationThree %s %s %s"><custom-block s="geq"/><block var="m"/><block var="n"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="lt" type="reporter" category="variables"><header/><code/><translations>en:< | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><custom-block s="not"/><custom-block s="applicationThree %s %s %s"><custom-block s="geq"/><block var="m"/><block var="n"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="gt" type="reporter" category="variables"><header/><code/><translations>en:> | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>m</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>n</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><custom-block s="not"/><custom-block s="applicationThree %s %s %s"><custom-block s="leq"/><block var="m"/><block var="n"/></custom-block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="pair" type="reporter" category="variables"><header/><code/><translations>en:pair | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>y</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>f</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><block var="f"/><block var="x"/><block var="y"/></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="first" type="reporter" category="variables"><header/><code/><translations>en:first | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="p"/><custom-block s="true"/></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="second" type="reporter" category="variables"><header/><code/><translations>en:second | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="p"/><custom-block s="false"/></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="nil" type="reporter" category="variables"><header/><code/><translations>en:nil | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="true"/></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="null" type="reporter" category="variables"><header/><code/><translations>en:null | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>p</l><block s="reifyReporter"><autolambda><custom-block s="applyFunc %s %s"><block var="p"/><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="lambda %upvar %repRing"><l>y</l><block s="reifyReporter"><autolambda><custom-block s="false"/></autolambda><list/></block></custom-block></autolambda><list/></block></custom-block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="shiftAndIncrement" type="reporter" category="variables"><header/><code/><translations>en:Φ | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>x</l><block s="reifyReporter"><autolambda><custom-block s="applicationThree %s %s %s"><custom-block s="pair"/><custom-block s="applyFunc %s %s"><custom-block s="second"/><block var="x"/></custom-block><custom-block s="applyFunc %s %s"><custom-block s="succ"/><custom-block s="applyFunc %s %s"><custom-block s="second"/><block var="x"/></custom-block></custom-block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="listPair %'l'" type="reporter" category="operators"><variables><list id="779"><item><l>a</l></item><item><l>b</l></item><item><l>c</l></item></list></variables><header/><code/><translations>en:_ $arrowRight λ | |
</translations><inputs><input type="%l"/></inputs><script><block s="doSetVar"><l>b</l><l>0</l></block><block s="doSetVar"><l>a</l><custom-block s="nil"/></block><block s="doRepeat"><block s="reportListLength"><block var="l"/></block><script><block s="doSetVar"><l>c</l><block s="reportListItem"><block s="reportDifference"><block s="reportListLength"><block var="l"/></block><block var="b"/></block><block var="l"/></block></block><block s="doSetVar"><l>a</l><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><custom-block s="pair"/><custom-block s="church %n"><block var="c"/></custom-block></custom-block><block var="a"/></custom-block></block><block s="doChangeVar"><l>b</l><l>1</l></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="pairList %'p'" type="reporter" category="operators"><variables><list id="823"><item><l>a</l></item><item><l>b</l></item></list></variables><header/><code/><translations>en:_ $arrowRight l | |
</translations><inputs><input type="%obj"/></inputs><script><block s="doSetVar"><l>a</l><block s="reportNewList"><list/></block></block><block s="doSetVar"><l>b</l><block var="p"/></block><block s="doUntil"><custom-block s="reverseChurchBool %obj"><custom-block s="applyFunc %s %s"><custom-block s="null"/><block var="b"/></custom-block></custom-block><script><block s="doAddToList"><custom-block s="reverseChurch %obj"><custom-block s="applyFunc %s %s"><custom-block s="first"/><block var="b"/></custom-block></custom-block><block var="a"/></block><block s="doSetVar"><l>b</l><custom-block s="applyFunc %s %s"><custom-block s="second"/><block var="b"/></custom-block></block></script></block><block s="doReport"><block var="a"/></block></script></block-definition><block-definition s="cons" type="reporter" category="variables"><header/><code/><translations>en::: | |
</translations><inputs/><script><block s="doReport"><custom-block s="pair"/></block></script></block-definition><block-definition s="head" type="reporter" category="variables"><header/><code/><translations>en:head | |
</translations><inputs/><script><block s="doReport"><custom-block s="first"/></block></script></block-definition><block-definition s="tail" type="reporter" category="variables"><header/><code/><translations/><inputs/><script><block s="doReport"><custom-block s="second"/></block></script></block-definition><block-definition s="isEmpty" type="reporter" category="variables"><header/><code/><translations>en:is empty? | |
</translations><inputs/><script><block s="doReport"><custom-block s="null"/></block></script></block-definition><block-definition s="applicationThree %'a' %'b' %'c'" type="reporter" category="operators"><header/><code/><translations>en:_ _ _ | |
</translations><inputs><input type="%s"/><input type="%s"/><input type="%s"/></inputs><script><block s="doReport"><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><block var="a"/><block var="b"/></custom-block><block var="c"/></custom-block></block></script></block-definition><block-definition s="applicationFour %'a' %'b' %'c' %'d'" type="reporter" category="operators"><header/><code/><translations>en:_ _ _ _ | |
</translations><inputs><input type="%s"/><input type="%s"/><input type="%s"/><input type="%s"/></inputs><script><block s="doReport"><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><custom-block s="applyFunc %s %s"><block var="a"/><block var="b"/></custom-block><block var="c"/></custom-block><block var="d"/></custom-block></block></script></block-definition><block-definition s="length" type="reporter" category="variables"><header/><code/><translations>en:length of | |
</translations><inputs/><script><block s="doReport"><custom-block s="lambda %upvar %repRing"><l>l</l><block s="reifyReporter"><autolambda><custom-block s="applicationFour %s %s %s %s"><custom-block s="ifthenelse"/><custom-block s="applyFunc %s %s"><custom-block s="isEmpty"/><block var="l"/></custom-block><custom-block s="church %n"><l>0</l></custom-block><custom-block s="applyFunc %s %s"><custom-block s="succ"/><custom-block s="applyFunc %s %s"><custom-block s="length"/><custom-block s="applyFunc %s %s"><custom-block s="tail"/><block var="l"/></custom-block></custom-block></custom-block></custom-block></autolambda><list/></block></custom-block></block></script></block-definition><block-definition s="convert %'i'" type="reporter" category="operators"><header/><code/><translations>en:_ $arrowRight λ | |
</translations><inputs><input type="%s"/></inputs><script><block s="doSayFor"><block var="i"/><l>2</l></block><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>number</option></l></block><script><block s="doReport"><custom-block s="church %n"><block var="i"/></custom-block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>Boolean</option></l></block><script><block s="doReport"><custom-block s="churchBool %b"><block var="i"/></custom-block></block></script><script><block s="doIfElse"><block s="reportIsA"><block var="i"/><l><option>list</option></l></block><script><block s="doReport"><custom-block s="listPair %l"><block var="i"/></custom-block></block></script><script><block s="doReport"><block var="i"/></block></script></block></script></block></script></block></script></block-definition></blocks> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment