Я пишу функцию, чтобы найти числа треугольников, и естественный способ ее записи рекурсивно:
function triangle (x)
if x == 0 then return 0 end
return x+triangle(x-1)
end
Но попытка вычислить первые 100 000 номеров треугольников завершится неудачей с переполнением стека через некоторое время. Это идеальная функция для memoize, но я хочу решение, которое будет memoize любую функцию, которую я передаю ему.