Skip to content

Commit

Permalink
Minor optimizations.
Browse files Browse the repository at this point in the history
  • Loading branch information
drupol committed May 27, 2020
1 parent dfb52f3 commit 18d20d7
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 10 deletions.
13 changes: 8 additions & 5 deletions src/Transformation/Run.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,13 @@ public function __construct(Operation ...$operations)
*/
public function on(iterable $collection)
{
$callback = static function (iterable $collection, Operation $operation): ClosureIterator {
return new ClosureIterator($operation->on($collection));
};

return (new Reduce($callback, $collection))->on($this->operations);
return (
new FoldLeft(
static function (iterable $collection, Operation $operation): ClosureIterator {
return new ClosureIterator($operation->on($collection));
},
$collection
)
)->on($this->operations);
}
}
13 changes: 8 additions & 5 deletions src/Transformation/Transform.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,13 @@ public function __construct(Transformation ...$transformers)
*/
public function on(iterable $collection)
{
$callback = static function (iterable $collection, Transformation $transformer) {
return $transformer->on($collection);
};

return (new Reduce($callback, $collection))->on($this->transformers);
return (
new FoldLeft(
static function (iterable $collection, Transformation $transformer) {
return $transformer->on($collection);
},
$collection
)
)->on($this->transformers);
}
}

0 comments on commit 18d20d7

Please sign in to comment.