Passez ceci comme premier argument:
C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))
En supposant que le code d'origine se trouve dans un fichier tehtmi.lua
, exécutez (dans bash ou un shell similaire):
lua tehtmi.lua 'C=("").char;_G[C(112,114,105,110,116)](C(72,101,108,108,111,44,32,87,111,114,108,100,33))'
Il fonctionne également sur Lua 5.3, qui est utilisé par TIO, alors pourquoi ne pas l' essayer en ligne ? Je n'ai pas testé une implémentation qui utilise le noyau "PUC-Rio's Lua 5.1" (car je ne trouve pas vraiment d'informations), mais ma solution y fonctionne probablement aussi.
Comment?
Il exécute le premier argument sous forme de code, mais uniquement s'il contient moins de 5 caractères minuscules.
L'astuce est de courir print("Hello, World!")
. Cela peut également être exécuté à l'aide de _G["print"]("Hello, World!")
, qui utilise uniquement des chaînes.
Mais nous ne pouvons pas utiliser la chaîne directement en raison de la restriction du nombre de minuscules, cependant, vous pouvez exécuter ("").char
pour obtenir la fonction string.char
, qui peut convertir une série d'octets en une chaîne. Je l'ai assigné à une variable en majuscule (afin de ne pas atteindre la limite) afin que nous puissions l'utiliser pour construire à la fois print
les Hello, World!
chaînes et les chaînes qui peuvent être utilisées comme ci-dessus.