// sort.oad - test the sort intrinsic method

proc main()
{
    var sorted;
    const cmp = proc(a,b) {
        var res = (a==b) ? 0 : (a < b) ? -1 : 1;
        return res;
    };

    sorted = new Array(4,6);

    sorted[0:3,0] = {"<",">","cmp","arrcmp"};
    sorted[0,1:] = {3, 4, 2, 3, 1}.sort();
    sorted[1,1:] = [3, 4, 2, 3, 1].sort(`>);
    sorted[2,1:] = {"3!", "4!", "2!", "3!", "1!"}.sort(cmp);
    sorted[3,1:] = {[3,2], [4,1], [2,1], [3,1], [1,1]}.sort(`arrcmp);


    print("S*, V, :, ' '", sorted);
}