public function sum($callback = null) { if (is_null($callback)) { return array_sum($this->items); } $callback = $this->valueRetriever($callback); return $this->reduce(function ($result, $item) use($callback) { return $result + $callback($item); }, 0); }
public function testPipe() { $collection = new Collection([1, 2, 3]); $this->assertEquals(6, $collection->pipe(function ($collection) { return $collection->sum(); })); }