["var_ref", "n"], ["lit", 1]], ["var_ref", "v"], ["func_call", "fact", ["-", ["var_ref", "n"], ["lit", 1]], ["*", ["var_ref", "v"], ["-", ["var_ref", "n"], ["lit", 1]]]]]], ["func_call", "p", ["func_call", "fact", ["lit", 5000], ["lit", 1]]]] def fact(n, v) if n == 1 v else fact(n-1, v * (n-1)) end end p fact(5000, 1)