March 2014 update
This commit is contained in:
parent
09687c4926
commit
a25938f123
1846 changed files with 21876 additions and 5203 deletions
|
|
@ -1,7 +1,18 @@
|
|||
sub sma ($)
|
||||
{my ($period, $sum, @a) = shift, 0;
|
||||
return sub
|
||||
{unshift @a, shift;
|
||||
$sum += $a[0];
|
||||
@a > $period and $sum -= pop @a;
|
||||
return $sum / @a;}}
|
||||
sub sma_generator {
|
||||
my $period = shift;
|
||||
my (@list, $sum);
|
||||
|
||||
return sub {
|
||||
my $number = shift;
|
||||
push @list, $number;
|
||||
$sum += $number;
|
||||
$sum -= shift @list if @list > $period;
|
||||
return $sum / @list;
|
||||
}
|
||||
}
|
||||
|
||||
# Usage:
|
||||
my $sma = sma_generator(3);
|
||||
for (1, 2, 3, 2, 7) {
|
||||
printf "append $_ --> sma = %.2f (with period 3)\n", $sma->($_);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue