Sorts an array with a function.

class Person
      var name: String
end

def get_name(p: Person) do return p.name

var ps = [new Person("Turing"), new Person("Curry"), new Person("Alfredo")]
ps.sort_with(&get_name)
assert ps[0].name == "Alfredo"
assert ps[1].name == "Curry"
assert ps[2].name == "Turing"

Property definitions

functional :: iter_extras $ Array :: sort_with
        # Sorts an array with a function.
        #
        # ~~~~nitish
        # class Person
        #       var name: String
        # end
        #
        # def get_name(p: Person) do return p.name
        #
        # var ps = [new Person("Turing"), new Person("Curry"), new Person("Alfredo")]
        # ps.sort_with(&get_name)
        # assert ps[0].name == "Alfredo"
        # assert ps[1].name == "Curry"
        # assert ps[2].name == "Turing"
        # ~~~~
        fun sort_with(f: Fun1[E, Comparable])
        do
                var cmp = new ComparatorWith[E](f)
                if length > 1 then
                        cmp.quick_sort(self, 0, length - 1)
                end
        end
lib/functional/iter_extras.nit:25,9--46,11