Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- : There is probably a mistake in here...
- : Macroexpanded prod in FSB3 with %-comprehensions:
- : Keep in mind that [] are *-loops in this language.
- : prod : ... X Y -> ... {(x, y) for x in X, y in Y}
- prod:%[{~/~/>~{~/~/~/{%[{~/~/>~{~/~/~/>{~/~/>~~{{~/~/>/{~/~/>/{~/~/~/>{{~/~/>/{~/~/>/{{~/~/>/{~/~/>/~{{~/~/>/{~/~/>/]{~/~/>_]{~/~/>_
- Conversion of %-comprehensions:
- %[(code)] --> {{~/~/>[Z(code){{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_
- : prod : ... X Y -> ... {(x, y) for x in X, y in Y}
- prod: {{~/~/>[Z{~/~/>~{~/~/~/{{{~/~/>[Z{~/~/>~{~/~/~/>{~/~/>~~{{~/~/>/{~/~/>/{~/~/~/>{{~/~/>/{~/~/>/{{~/~/>/{~/~/>/~{{~/~/>/{~/~/>/{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_
- : lists : ... X -> ... {l : l is a #X-long linked list of either {x} or {} for x ∈ X using some consistent order}
- lists:{~/{~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/>{{{~/~/>/{~/~/>/{~/~/>{{~/~/>[Z{~/~/>~{~/~/~/{{{~/~/>[Z{~/~/>~{~/~/~/>{~/~/>~~{{~/~/>/{~/~/>/{~/~/~/>{{~/~/>/{~/~/>/{{~/~/>/{~/~/>/~{{~/~/>/{~/~/>/{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_{~/~/>]_
- : recall [(then),(else)] -> ~{=~[__(else){{{]__~[_(then){{]__
- : removeEmpty : ... x y z w -> ... a b c which are three of x y z w with an {} removed. Loops forever if no {}.
- : removeEmpty:[{~/~/~/~/>]_
- : dup2 in FSB3
- : dup2 : ... X Y -> X Y X Y
- : dup2 : {~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>
- : not in FSB3
- : not:{=
- : magic : ... a b c -> ... returns h t where [h, h, t] is some permutation of a b c. Loops forever if no two are equal.
- : magic:{~/[_{~/~/~/>(dup2)=(not)]_{~/~/>
- : magic:{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>
- : split : ... (h, t) -> ... h t
- : This is surprisingly complicated, because we've given up our set operations. We use a bunch of Z's and movement operators to get
- : ... (h, t) -> <h t h {} in some order>
- : then we use removeEmpty to remove an {} and magic to get h t in the right order.
- split:Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z(removeEmpty)(magic)
- split:Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z[{~/~/~/~/>]_{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>
- 1st:(split)_
- 2nd:(split){~/~/>_
- : union
- union:[Z{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_
- listToSet:{{~/~/>[~(1st){~/~/>(2nd){~/~/}>[(union),_]{~/~/>]_
- listToSet:{{~/~/>[~Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z[{~/~/~/~/>]_{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>_{~/~/>Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z[{~/~/~/~/>]_{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>{~/~/>_{~/~/}>~{=~[___{{{]__~[_[Z{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{{]__{~/~/>]_
- : 375 characters long!
- %[(code)] --> {{~/~/>[Z(code){{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_
- powerset:(lists)%[(listtoset)~+] in regular SetBang
- powerset:(lists)%[(listtoset){{~/~/>/] in stripped-down SetBang
- powerset:(lists){{~/~/>[Z(listtoset){{~/~/>/{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_
- powerset:{~/{~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/>{{{~/~/>/{~/~/>/{~/~/>{{~/~/>[Z{~/~/>~{~/~/~/{{{~/~/>[Z{~/~/>~{~/~/~/>{~/~/>~~{{~/~/>/{~/~/>/{~/~/~/>{{~/~/>/{~/~/>/{{~/~/>/{~/~/>/~{{~/~/>/{~/~/>/{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_{~/~/>_{~/~/>]_{{~/~/>[Z{{~/~/>[~Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z[{~/~/~/~/>]_{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>_{~/~/>Z{~/~/>Z{~/~/>_~{=~[___~{{{]__~[_{{]__~Z{~/~/>Z{~/~/~/>{~/~/~/>~Z{~/~/>Z[{~/~/~/~/>]_{~/[_{~/~/~/>{~/~/>~{~/~/~/>{~/~/~/>~{~/~/~/>={=]_{~/~/>{~/~/>_{~/~/}>~{=~[___{{{]__~[_[Z{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{{]__{~/~/>]_{{~/~/>/{{~/~/~/>{~/~/~/>[Z~{{~/~/>/{~/~/>/{~/~/~/>{~/~/~/>{~/~/>/{~/~/>]_{~/~/>]_
- : 824 characters long!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement