21 lines
400 B
Plaintext
21 lines
400 B
Plaintext
define forward_difference(l);
|
|
lvars res = [], prev, el;
|
|
if l = [] then
|
|
return([]);
|
|
endif;
|
|
front(l) -> prev;
|
|
for el in back(l) do
|
|
cons(el - prev, res) -> res;
|
|
el -> prev;
|
|
endfor;
|
|
rev(res);
|
|
enddefine;
|
|
|
|
define nth_difference(l, n);
|
|
lvars res = l, i;
|
|
for i from 1 to n do
|
|
forward_difference(res) -> res;
|
|
endfor;
|
|
res;
|
|
enddefine;
|