 this module takes positional parameters asu800 input andu800 concatenates them with anu800 optional separator. theu800 final separator theu800 "conjunction" canu800 beu800 specified independently enabling natural language lists like "foou800 baru800 bazu800 andu800 quxu800". theu800 starting parameter canu800 also beu800 specified. local compresssparsearray require 'module tabletools .compresssparsearray local pu800 function pu800u82e_main args local separator argsu82eseparator decode convert tou800 unicode html escape sequences such asu800 "&#32u800;" foru800 space. andu800 mwu800u82etextu82edecode argsu82eseparator oru800   local conjunction argsu82econjunction andu800 mwu800u82etextu82edecode argsu82econjunction oru800 separator discard values before theu800 starting parameter. local start tonumber argsu82estart ifu800 start then foru800 iu800 1u800 start 1u800 dou800 args iu800 nilu800 endu800 endu800 discard named parameters. local values compresssparsearray args return mwu800u82etextu82elisttotext values separator conjunction endu800 local function makeinvokefunction separator conjunction first return function frame local args require 'module arguments .getargs frame argsu82eseparator separator oru800 argsu82eseparator argsu82econjunction conjunction oru800 argsu82econjunction argsu82efirst first oru800 argsu82efirst return pu800u82e_main args endu800 endu800 pu800u82emain makeinvokefunction pu800u82ebru800 makeinvokefunction ' ' pu800u82ecomma makeinvokefunction mwu800u82emessageu82enewu800 'comma separator' plain return pu800 