sub integrate(&@) { local $x; my $sum; my $f = shift; my %o = (from => 0, by => 0.01, @_); for ($o{from} / $o{by} .. $o{to} / $o{by}) { $x = $_ * $o{by}; $sum += &$f * $o{by}; } $sum; } #> integrate { $x } from => 0, to => 1 ## 0.505