public function reduce($closure, $initial = false)
    {
        $result = $initial;
        foreach ($this as $val) {
            $result = $closure($result, $val);
        }
        return $result;
    }
public function reduce($closure, $initial = false)
    {
        $result = $initial;
        foreach ($this as $val) {
            $result = $closure($result, $val);
        }
        return $result;
    }
public function reduce ( $ closure , $ initial = false ) { $ result = $ initial ; foreach ( $ this as $ val ) { $ result = $ closure ( $ result , $ val ) ; } return $ result ; }
Reduces, or folds, a collection down to a single value

@param  Closure $closure The filter to apply.
@param  mixed   $initial Initial value.
@return mixed            The reduced value.
Reduces or folds a collection down to a single value