さて、実は自分もこっそり案を練っていましたよ、と。C式とは異なりますが。

tarai := function(x, y, z,
    if (x <= y,
        y,
        tarai(tarai(x - 1, y, z), tarai(y - 1, z, x), tarai(z - 1, x, y))
    )
)
main := function(
    printf("%d", tarai(20, 5, 1)
)

内部的には

define(tarai, function(x, y, z, if(<=(x, y), y, tarai(tarai(-(x, 1), y, z), tarai(-(y, 1), z, x), tarai(-(z, 1), x, y)))))
define(main, function(printf("%d", tarai(20, 5, 1))))

……だけど、再帰関数が上手く動くのかは不明。