procedure main(A) # Compute all forward difference orders for argument list every order := 1 to (*A-1) do showList(order, fdiff(A, order)) end procedure fdiff(A, order) every 1 to order do { every put(B := [], A[i := 2 to *A] - A[i-1]) A := B } return A end procedure showList(order, L) writes(right(order,3),": ") every writes(!L," ") write() end