public static function factory(IIteratorScheme $scheme = null, Traversable $source = null)
    {
        //static:: doesn't work in closures?
        $static = get_called_class();

        return function ($elements) use ($static, $scheme, $source) {
            return $static::from($elements, $scheme, $source);
        };
    }
public static function factory(IIteratorScheme $scheme = null, Traversable $source = null)
    {
        //static:: doesn't work in closures?
        $static = get_called_class();

        return function ($elements) use ($static, $scheme, $source) {
            return $static::from($elements, $scheme, $source);
        };
    }
public static function factory ( IIteratorScheme $ scheme = null , Traversable $ source = null ) { //static:: doesn't work in closures? $ static = get_called_class ( ) ; return function ( $ elements ) use ( $ static , $ scheme , $ source ) { return $ static :: from ( $ elements , $ scheme , $ source ) ; } ; }
Returns a callable for the traversable constructor.

@param IIteratorScheme|null $scheme
@param Traversable|null     $source

@return callable
Returns a callable for the traversable constructor .