大まかな方針: UDLR の列を 4 進数で整数にして(コード中では 94 進数で書ける)、それをデコードする
x が 0, 1, 2, 3 のとき、それぞれ U, D, L, R に変換するやつ
Y コンビネータ
cf. wikipedia
Lf B$ Lx B$ vf B$ vx vx Lx B$ vf B$ vx vx
本質パート
B$ B$ <Y> Lf Ln ? B= vn I! S B. BT I" BD B% vn I% SO>FL B$ vf B/ vn I% <num>
<Y> は上の不動点コンビネータ。<num> は UDLR の列をエンコードしたもの。
0 なら止める、それ以外なら n % 4 を上のやつで UDLR に変換し、再帰的に n / 4 を処理する
SO>FL は UDLR を表す文字列。
0 が末尾に来るとまずいので、python 側でちょっとごまかしている
大まかな方針: UDLR の列を 4 進数で整数にして(コード中では 94 進数で書ける)、それをデコードする
x が 0, 1, 2, 3 のとき、それぞれ U, D, L, R に変換するやつ
Y コンビネータ
cf. wikipedia
本質パート
<Y>は上の不動点コンビネータ。<num>は UDLR の列をエンコードしたもの。0 なら止める、それ以外なら
n % 4を上のやつで UDLR に変換し、再帰的にn / 4を処理するSO>FLはUDLRを表す文字列。0 が末尾に来るとまずいので、python 側でちょっとごまかしている