<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Jan 10, 2019 at 12:11 PM Henning Hraban Ramm <<a href="mailto:texml@fiee.net">texml@fiee.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br> a Lua pairs table, the order can be arbitrary.<br></blockquote><div> </div><div>sure ,  the *default*  __pairs gives pseudo-arbitrary order, but you can always use metatable:</div><div>--</div><div>-- test.lua</div><div>--</div></div><div><div>local _c,_t=0,{}<br></div></div><div><div>local t = {}</div><div>setmetatable(t, {</div><div>   __newindex = function(tbl, k, v)</div><div>      _c=_c+1</div><div>      _t[_c]=k</div><div>      rawset(tbl, k, v)</div><div>   end,</div><div><br></div><div>  __pairs = function(tbl)</div><div>      local i = 1</div><div>      return function(tbl,k)</div><div>        k = _t[i]</div><div>        i=i+1 </div><div>        return k,tbl[k]</div><div>      end, tbl,nil</div><div>    end,</div><div>})</div><div><br></div><div><br></div><div>t['a']= 'aaa'</div><div>t['3a']= '3aa'</div><div>t['b']= 'baa'</div><div>t['2b']= '2ba'</div><div>t['c']= 'caa'</div><div>t['2c']= '2ca'</div><div>t['d']= 'daa'</div><div>t['2d']= '2da'</div><div>t['e']= 'eaa'</div><div>t['2e']= '2ea'</div><div><br></div><div><br></div><div>for k,v in pairs(t) do print(k,v) end</div><div><br></div></div><div><br></div><div><br></div><div><div>$ mtxrun --script test.lua </div><div>a<span style="white-space:pre">   </span>aaa</div><div>3a<span style="white-space:pre"> </span>3aa</div><div>b<span style="white-space:pre">  </span>baa</div><div>2b<span style="white-space:pre"> </span>2ba</div><div>c<span style="white-space:pre">  </span>caa</div><div>2c<span style="white-space:pre"> </span>2ca</div><div>d<span style="white-space:pre">  </span>daa</div><div>2d<span style="white-space:pre"> </span>2da</div><div>e<span style="white-space:pre">  </span>eaa</div><div>2e<span style="white-space:pre"> </span>2ea</div></div><div><br></div><div>--</div><div>luigi</div></div></div></div></div></div>