2013-04-10 21:29:02 -07:00
|
|
|
import std.stdio, std.algorithm, std.range, std.array;
|
|
|
|
|
|
2015-02-20 00:35:01 -05:00
|
|
|
auto forwardDifference(Range)(Range d, in int level) pure {
|
2014-01-17 05:32:22 +00:00
|
|
|
foreach (immutable _; 0 .. level)
|
|
|
|
|
d = d.zip(d.dropOne).map!(a => a[0] - a[1]).array;
|
2013-04-10 21:29:02 -07:00
|
|
|
return d;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void main() {
|
2014-01-17 05:32:22 +00:00
|
|
|
const data = [90.5, 47, 58, 29, 22, 32, 55, 5, 55, 73.5];
|
|
|
|
|
foreach (immutable level; 0 .. data.length)
|
|
|
|
|
forwardDifference(data, level).writeln;
|
2013-04-10 21:29:02 -07:00
|
|
|
}
|