Skip to content

Commit

Permalink
Update Run operation.
Browse files Browse the repository at this point in the history
  • Loading branch information
drupol committed Jul 22, 2020
1 parent 7c5ee8f commit 5a5a1bd
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions src/Transformation/Run.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
use loophp\collection\Contract\Operation;
use loophp\collection\Contract\Transformation;
use loophp\collection\Iterator\ClosureIterator;
use loophp\collection\Iterator\IterableIterator;

final class Run implements Transformation
{
Expand All @@ -25,10 +26,16 @@ public function __construct(Operation ...$operations)
*/
public function __invoke(iterable $collection): ClosureIterator
{
$iterableIterator = new IterableIterator($collection);

return (
new FoldLeft(
static function (iterable $collection, Operation $operation): ClosureIterator {
return new ClosureIterator($operation(), $collection, ...array_values($operation->getArguments()));
static function (iterable $collection, Operation $operation) use ($iterableIterator): ClosureIterator {
return new ClosureIterator(
$operation(),
$iterableIterator,
...array_values($operation->getArguments())
);
},
$collection
)
Expand Down

0 comments on commit 5a5a1bd

Please sign in to comment.