-- recursive with memoization local catalan = { [0] = 1 } setmetatable(catalan, { __index = function(c, n) c[n] = c[n - 1] * 2 * (2 * n - 1) / (n + 1) return c[n] end }) for i = 0, 14 do print(string.format("%d", catalan[i])) end