code: public function onResultOf(callable $function) : Ordering
      {
          return Ordering::from(Collections::comparatorFrom(
              function ($object1, $object2) use ($function) {
                  return $this->compare(
                      Functions::call($function, $object1),
                      Functions::call($function, $object2)
                  );
              }
          ));
      }
docs: Returns a new ordering which orders elements by first applying a function to them,
  then comparing those results using this.
  
  @param callable $function
  @return Ordering