RosettaCodeData/Task/Forward-difference/Icon/forward-difference.icon

18 lines
400 B
Plaintext

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