Skip to content

lambdaman 圧縮が何やっているか #2

Description

@semiexp

大まかな方針: UDLR の列を 4 進数で整数にして(コード中では 94 進数で書ける)、それをデコードする

x が 0, 1, 2, 3 のとき、それぞれ U, D, L, R に変換するやつ

BT I" BD x SO>FL

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 側でちょっとごまかしている

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions