local fmt = require "fmt" require "table2" local function forward_diff(a, order) assert(order >= 0 and order % 1 == 0, "Order must be a non-negative integer.") if #a == 0 then return end io.write(" 0: ") fmt.tprint("%5d", a) if #a == 1 then return end if order == 0 then return end for o = 1, order do local b = table.rep(#a - 1, 0) for i = 1, #b do b[i] = a[i + 1] - a[i] end io.write($" {o}: ") fmt.tprint("%5d", b) if #b == 1 then return end a = b end end forward_diff({90, 47, 58, 29, 22, 32, 55, 5, 55, 73}, 9)