public function compose() {
    $functions = self::_wrapArgs(func_get_args(), 1);
    
    return self::_wrap(function() use ($functions) {
      $args = func_get_args();
      foreach($functions as $function) {
        $args[0] = call_user_func_array($function, $args);
      }
      return $args[0];
    });
  }
public function compose() {
    $functions = self::_wrapArgs(func_get_args(), 1);
    
    return self::_wrap(function() use ($functions) {
      $args = func_get_args();
      foreach($functions as $function) {
        $args[0] = call_user_func_array($function, $args);
      }
      return $args[0];
    });
  }
public function compose ( ) { $ functions = self :: _wrapArgs ( func_get_args ( ) , 1 ) ; return self :: _wrap ( function ( ) use ( $ functions ) { $ args = func_get_args ( ) ; foreach ( $ functions as $ function ) { $ args [ 0 ] = call_user_func_array ( $ function , $ args ) ; } return $ args [ 0 ] ; } ) ; }
Returns the composition of the functions
Returns the composition of the functions