27 lines
557 B
D
27 lines
557 B
D
import std.stdio : writeln, stdin;
|
|
import std.exception : enforce;
|
|
import stats;
|
|
|
|
void main(string[] args)
|
|
{
|
|
Stat[] stats;
|
|
foreach (arg; args[1 .. $])
|
|
{
|
|
auto newStat = cast(Stat) Object.factory("stats." ~ arg);
|
|
enforce(newStat, "Invalid statistics function: " ~ arg);
|
|
stats ~= newStat;
|
|
}
|
|
for (double x; stdin.readf(" %s ", &x) == 1;)
|
|
{
|
|
foreach (s; stats)
|
|
{
|
|
s.accumulate(x);
|
|
}
|
|
}
|
|
foreach (s; stats)
|
|
{
|
|
s.postprocess();
|
|
writeln(s.result());
|
|
}
|
|
}
|