RosettaCodeData/Task/Forward-difference/Sidef/forward-difference.sidef
2016-12-05 23:44:36 +01:00

15 lines
287 B
Text

func dif(arr) {
gather {
range(0, arr.end-1).each { |i|
take(arr[i+1] - arr[i]);
}
}
}
func difn(n, arr) {
n.times { arr = dif(arr) };
arr;
}
say dif([1, 23, 45, 678]); # => [22, 22, 633]
say difn(2, [1, 23, 45, 678]); # => [0, 611]