Skip to content

Commit

Permalink
docs: Update example.
Browse files Browse the repository at this point in the history
  • Loading branch information
drupol committed May 27, 2021
1 parent 9b986aa commit 3f18553
Showing 1 changed file with 9 additions and 35 deletions.
44 changes: 9 additions & 35 deletions docs/pages/code/e.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,15 @@

use loophp\collection\Collection;

$multiplication = static function (float $value1, float $value2): float {
return $value1 * $value2;
};

$addition = static function (float $value1, float $value2): float {
return $value1 + $value2;
};

$fact = static function (float $number) use ($multiplication): float {
return (float) Collection::range(1, $number + 1)
->foldLeft($multiplication, 1)
->current();
};

$e = static function (float $value) use ($fact): float {
return $value / $fact($value);
};

$listInt = static function (float $init, callable $succ): Generator {
yield $init;

while (true) {
yield $init = $succ($init);
}
};

$naturals = $listInt(1, static function (float $n): float {
return $n + 1;
});

$number_e_approximation = Collection::fromIterable($naturals)
->map($e)
->until(static function (float $value): bool {
return 10 ** -12 > $value;
})
$multiplication = static fn (float $value1, float $value2): float => $value1 * $value2;

$addition = static fn (float $value1, float $value2): float => $value1 + $value2;

$fact = static fn (float $number): float => (float) Collection::range(1, $number + 1)->foldLeft($multiplication, 1)->current();

$number_e_approximation = Collection::unfold(static fn(int $i = 0): int => $i + 1)
->map(static fn (float $value): float => $value / $fact($value))
->until(static fn (float $value): bool => 10 ** -12 > $value)
->foldLeft($addition, 0)
->current();

Expand Down

0 comments on commit 3f18553

Please sign in to comment.