From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/102986 Path: news.gmane.org!.POSTED!not-for-mail From: luigi scarso Newsgroups: gmane.comp.tex.context Subject: Re: final thoughts on experiments with lua Date: Thu, 10 Jan 2019 15:53:21 +0100 Message-ID: References: <1129b579-cbdc-a34d-4e25-9c4c9ecf87d8@uni-bonn.de> <971a78c9-3a21-a30a-b105-9d0307298614@xs4all.nl> <7AA72285-53B0-41E6-8E75-64AC5F97BC10@uni-bonn.de> <5797F962-D863-48B1-B528-385C2F7DE2C5@fiee.net> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3015420466846120762==" X-Trace: blaine.gmane.org 1547131908 5201 195.159.176.226 (10 Jan 2019 14:51:48 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 10 Jan 2019 14:51:48 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Thu Jan 10 15:51:44 2019 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from zapf.boekplan.nl ([5.39.185.232] helo=zapf.ntg.nl) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ghbgN-0001EO-65 for gctc-ntg-context-518@m.gmane.org; Thu, 10 Jan 2019 15:51:43 +0100 Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 3AC95C9960; Thu, 10 Jan 2019 15:53:38 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1S2vnx24B0VD; Thu, 10 Jan 2019 15:53:37 +0100 (CET) Original-Received: from zapf.ntg.nl (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id 3924DC9962; Thu, 10 Jan 2019 15:53:37 +0100 (CET) Original-Received: from localhost (localhost [127.0.0.1]) by zapf.ntg.nl (Postfix) with ESMTP id CA613C9960 for ; Thu, 10 Jan 2019 15:53:35 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at zapf.boekplan.nl Original-Received: from zapf.ntg.nl ([127.0.0.1]) by localhost (zapf.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GymT0lSqvINM for ; Thu, 10 Jan 2019 15:53:35 +0100 (CET) Original-Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by zapf.ntg.nl (Postfix) with ESMTPS id 55949C995F for ; Thu, 10 Jan 2019 15:53:35 +0100 (CET) Original-Received: by mail-lf1-f48.google.com with SMTP id b20so8464197lfa.12 for ; Thu, 10 Jan 2019 06:53:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=KquG41hSxPSwtQNGkjFUkoaYWkfbYyM54ZouRsS/4pQ=; b=SEx3YsvOgww9Ri/5EV+jx2GasQjC3F+2x875Z8csJhV96IK6tncZROR6GSC5cbxTdg Yb2Tu4A4Kinfc/d0bOSPsQuJTL4VL4LAf8H6u3MPqQ3WkMyHlG+NwrhD1UrJXhCkZMfQ HLOCabI0pDeCcTKaSwg4lwibLDnmFiZV6IpQBVBK73s752SyrEmyqqZ3VK7K9KPzDLw0 /9dWSgYFiK0Bbe0vEsbJc5TxzFbKSB0T5MAcLe5//kUocBpJa+HO5X70csFWX1KVGBfy lnx7cl3T15MMGvvUy/t9f/ToA1/qa4dxxmmWsFvfxMdDZ83TnNIz08EurrBfOdrqTxxS bkDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=KquG41hSxPSwtQNGkjFUkoaYWkfbYyM54ZouRsS/4pQ=; b=klsiZ8OcFx89HfxFL0cjFQqadxXpytUF2CMFuMUAEseK5tgUWMEJzMX49JKpo7rXd9 R9ibtAGzgD6kFQPn2EQ2ko21Ld+O1cH5745G+x44jbOGnp+iahdJq19+KuauEVQ068ai tL5sJsEhrZ1vkGOXshMrQpH/gXkrRP+j0c4oaogLIUb+0i+cOG2IIiQoi+XUrqgJwG7h m3Ak5owfUm18+C5g0opUBgdLeSl9WSgWOzsE6O0K9GQE2OT3cdHBv3GoZlfa3cE2Cwpk 8E7dypyaJSxQc7Xglq3omc/bMU7TVZrS9jj/6KefcUmKuyJXHDHRCqMRdYbL+gQoYD4p zXUA== X-Gm-Message-State: AJcUukdGJEh9eTvB7bium5nzSJ/GrSJiFTvI2AXrKyljfL378N0AGWpq qp3fDZt6rVz6vNpNcBCIRaVFk4LDBLAqpHHhD/vPlEXg X-Google-Smtp-Source: ALg8bN4WE/VAvPo3N7gglAr5SWIfAb/amsDJYPKXQSkikLhxLJdnEoYt0WgzeNj7N+Zq41Lklz8rc1Mi6QGIfYZUM/c= X-Received: by 2002:a19:4948:: with SMTP id l8mr6276330lfj.156.1547132013027; Thu, 10 Jan 2019 06:53:33 -0800 (PST) In-Reply-To: <5797F962-D863-48B1-B528-385C2F7DE2C5@fiee.net> X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.20 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: "ntg-context" Xref: news.gmane.org gmane.comp.tex.context:102986 Archived-At: --===============3015420466846120762== Content-Type: multipart/alternative; boundary="0000000000000eab32057f1bbe2e" --0000000000000eab32057f1bbe2e Content-Type: text/plain; charset="UTF-8" On Thu, Jan 10, 2019 at 12:11 PM Henning Hraban Ramm wrote: > > a Lua pairs table, the order can be arbitrary. > sure , the *default* __pairs gives pseudo-arbitrary order, but you can always use metatable: -- -- test.lua -- local _c,_t=0,{} local t = {} setmetatable(t, { __newindex = function(tbl, k, v) _c=_c+1 _t[_c]=k rawset(tbl, k, v) end, __pairs = function(tbl) local i = 1 return function(tbl,k) k = _t[i] i=i+1 return k,tbl[k] end, tbl,nil end, }) t['a']= 'aaa' t['3a']= '3aa' t['b']= 'baa' t['2b']= '2ba' t['c']= 'caa' t['2c']= '2ca' t['d']= 'daa' t['2d']= '2da' t['e']= 'eaa' t['2e']= '2ea' for k,v in pairs(t) do print(k,v) end $ mtxrun --script test.lua a aaa 3a 3aa b baa 2b 2ba c caa 2c 2ca d daa 2d 2da e eaa 2e 2ea -- luigi --0000000000000eab32057f1bbe2e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Thu, Jan 10, 2019 at 12:11 PM Henning Hraban Ramm <texml@fiee.net> wrote:

=C2=A0a Lua pairs table, the o= rder can be arbitrary.
=C2=A0
sure ,=C2=A0 t= he *default*=C2=A0 __pairs gives pseudo-arbitrary order, but you can always= use metatable:
--
-- test.lua
--
=
local _c,_t=3D0,{}
local t =3D {}
<= div>setmetatable(t, {
=C2=A0 =C2=A0__newindex =3D function(tbl, k= , v)
=C2=A0 =C2=A0 =C2=A0 _c=3D_c+1
=C2=A0 =C2=A0 =C2= =A0 _t[_c]=3Dk
=C2=A0 =C2=A0 =C2=A0 rawset(tbl, k, v)
= =C2=A0 =C2=A0end,

=C2=A0 __pairs =3D function(tbl)=
=C2=A0 =C2=A0 =C2=A0 local i =3D 1
=C2=A0 =C2=A0 =C2= =A0 return function(tbl,k)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 k =3D _t[i= ]
=C2=A0 =C2=A0 =C2=A0 =C2=A0 i=3Di+1=C2=A0
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 return k,tbl[k]
=C2=A0 =C2=A0 =C2=A0 end, tbl,n= il
=C2=A0 =C2=A0 end,
})


<= /div>
t['a']=3D 'aaa'
t['3a']=3D '= ;3aa'
t['b']=3D 'baa'
t['2b'= ;]=3D '2ba'
t['c']=3D 'caa'
t[&= #39;2c']=3D '2ca'
t['d']=3D 'daa'
t['2d']=3D '2da'
t['e']=3D 'ea= a'
t['2e']=3D '2ea'

=
for k,v in pairs(t) do print(k,v) end



$ mtxrun --script test.lua=C2= =A0
a aaa
3a 3aa
b baa
2b 2ba=
c caa
2c 2ca
d daa
2d 2da
e eaa
2e 2ea

--
luigi
--0000000000000eab32057f1bbe2e-- --===============3015420466846120762== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSWYgeW91ciBxdWVzdGlvbiBpcyBvZiBpbnRlcmVz dCB0byBvdGhlcnMgYXMgd2VsbCwgcGxlYXNlIGFkZCBhbiBlbnRyeSB0byB0aGUgV2lraSEKCm1h aWxsaXN0IDogbnRnLWNvbnRleHRAbnRnLm5sIC8gaHR0cDovL3d3dy5udGcubmwvbWFpbG1hbi9s aXN0aW5mby9udGctY29udGV4dAp3ZWJwYWdlICA6IGh0dHA6Ly93d3cucHJhZ21hLWFkZS5ubCAv IGh0dHA6Ly9jb250ZXh0LmFhbmhldC5uZXQKYXJjaGl2ZSAgOiBodHRwczovL2JpdGJ1Y2tldC5v cmcvcGhnL2NvbnRleHQtbWlycm9yL2NvbW1pdHMvCndpa2kgICAgIDogaHR0cDovL2NvbnRleHRn YXJkZW4ubmV0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f --===============3015420466846120762==--