title: lua table.sort not behaving as expected
body: <p>I have a program that evaluates sets of images and assigns them a given value, now I would like to sort the output of this program, to do this I have the following code: </p>
  
  <pre><code> function SelectTop(params,images,count)
      local values={}  
      for k,v in pairs(images) do
          local noError,res=pcall(evaluate,params,v)
  
      if noError then 
          values[v]=res
      else
  
      values[v] = 9999999999999999999999999999999999999999999999999999999999
      end
    end
  function compare(a,b)
    return a[2] &lt; b[2]
  end
  
    table.sort(values,compare)
    print(values)
  end
  </code></pre>
  
  <p>where we can reasonably assume the output of evaluate to be akin to math.random(7000) (the actual code is far more complex and involves neural networks). 
  Now I would expect the output to be sorted but instead I get something like this:</p>
  
  <pre><code> {
    table: 0x40299d30 : 4512.3590053809
    table: 0x40299580 : 4029.3450116073
    table: 0x40298dd0 : 6003.9508240314
    table: 0x40297de0 : 6959.9145312802
    table: 0x40297630 : 4265.2784117677
    table: 0x40296e40 : 3850.0829011681
    table: 0x40296690 : 4007.2308907069
    table: 0x40296ec0 : 3840.5216952082
    table: 0x4029a770 : 5059.1475464564
    table: 0x40299fc0 : 6058.9603651599
    table: 0x40299810 : 1e+58
    table: 0x40299060 : 1e+58
    table: 0x402988b0 : 5887.729117754
    table: 0x402978c0 : 3675.7295252455
    table: 0x40296920 : 1e+58
    table: 0x4029aa00 : 5624.6042279879
    table: 0x40295bf8 : 1391.8185365923
    table: 0x40296458 : 4276.09869066
    table: 0x40299aa0 : 1e+58
    table: 0x402992f0 : 6334.3641972965
    table: 0x40298300 : 2660.5004512843
    table: 0x40298b40 : 6200.373787482
    table: 0x40296148 : 6178.926312832
    table: 0x40298380 : 1559.5307868896
    table: 0x40295968 : 1e+58
    table: 0x40296bb0 : 6708.7545218628
    table: 0x4029b550 : 1484.2931717456
    table: 0x40298400 : 1638.1286256175
    table: 0x40298070 : 3762.7368939272
    table: 0x402963d8 : 1500.002116023
    table: 0x4029ac90 : 2486.2695974502
    table: 0x40295e88 : 1e+58
    table: 0x40297b50 : 4806.6468870717
    table: 0x4029a4e0 : 4328.0636461426
    table: 0x402973a0 : 4757.4343171052
    table: 0x4029a250 : 3998.8649821268
  }
  </code></pre>
  
  <p>So why does table.sort not work here? I would assume that some sort of sorting would happen here? </p>
  
  <p>Anybody know what I'm doing wrong?</p>
  
  <p>So if we want a full example we can do something like this:</p>
  
  <pre><code>function evaluate (a,b)
      return math.random(7000)
  end
  SelectTop(nil,{ {a, b, c}, {d, e, f}, {g, e, f}, {f, e, f} },0)
  </code></pre>
  
  <p>output: </p>
  
  <pre><code>{ table: 0x41c2af18 : 5560
    table: 0x41c2afa8 : 4131
    table: 0x41c2af60 : 4892
    table: 0x41c2aff0 : 5273
  }
  </code></pre>