技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

クロージャの無い言語でクロージャもどきかよっ!

http://ml.tietew.jp/cppll/cppll/article/10669

調べてたらあった、、、、
恐るべし、、、、。

とりあえずPython移植

def tarai_lazy(x, y, xx, yy, zz):
    if x <= y:
        return y
    z = tarai(xx, yy, zz)
    return tarai_lazy(tarai(x - 1, y, z),
                      tarai(y - 1, z, x),
                      z - 1, x, y)

def tarai(x, y, z):
    if x <= y:
        return y
    return tarai_lazy(tarai(x - 1, y, z),
                      tarai(y - 1, z, x),
                      z - 1, x, y)


if __name__ == "__main__":
    print(tarai(20,10,5))
    raw_input()