Comment by defrost

2 hours ago

Not my specification (drive by third party)

but I do take the view that ( 1, 2, 3, 4, 5, 5, 6 ) is a list of seven values (perhaps the number of dollars in the pockets of seven distinct unique people) and when sorted the output should also have seven items that correspond to the seven input items.

> Also ...

Yeah, that needs tightening up by pastel8739

You need a way to differentiate the two 5s, that isn't present. If you had a list like:

  L = [(5,foo), (2,bar), (2,baz),...]

And did a:

  SORT(L, key=first) # or however it'd be specified

Then the duplicate 2s would be fine, because they're no longer duplicates, only duplicate keys. But it would still fail if (2,baz) showed up twice in the source and destination even though we've asked for SORT, not UNIQSORT.

  • More seriously,

    > You need a way to differentiate the two 5s

    As there's no unique filtering or other reduction going on here, there's a permutation chain from input to output.

    • But that's not in the specification given above. That specification is entirely wrong to specify SORT. It requires no duplicates survive the sorting process.

  • In the cases of

      SORT ( 3, 2, 5, 5 ) ->> ( 2, 3, 5, 5 ) and
      SORT ( 3, 2, 5, 5 ) ->> ( 2, 3, 5, 5 )
    

    one or both of those might be incorrect ?

    ( I'm teasing, perhaps )