function map (callable $fn, $arg = null)
  {
    $this->setIterator (new MapIterator ($this->getIterator (), $fn, $arg));
    return $this;
  }
function map (callable $fn, $arg = null)
  {
    $this->setIterator (new MapIterator ($this->getIterator (), $fn, $arg));
    return $this;
  }
function map ( callable $ fn , $ arg = null ) { $ this -> setIterator ( new MapIterator ( $ this -> getIterator ( ) , $ fn , $ arg ) ) ; return $ this ; }
Transforms the iterated data using a callback function.

@param callable $fn  A callback that receives a value, a key and an option extra argument, and returns the new
value.<br> It can also receive the key by reference and change it.
<p>Ex:<code>  ->map (function ($v, &$k) { $k = $k * 10; return $v * 100; })</code>
@param mixed    $arg An optional extra argument to be passed to the callback on every iteration.
<p>The callback can change the argument if it declares the parameter as a reference.
@return $this
Transforms the iterated data using a callback function .