自分自身と全く同じ内容を出力するquine(クワイン)と呼ばれるプログラムを書く、 そんな頭の体操、娯楽があります。そのquineをLuaで書いてみました。
s="print(string.format('s=%q;loadstring(s)()',s))";loadstring(s)()
このプログラムをquine.luaとして保存し以下のようにすると…
$ lua quine.lua > 1.lua
$ lua 1.lua > 2.lua
$ diff -u 1.lua 2.lua
$
最後のdiffで差分が表示されなければ正しく動いてます。 どのようにquineを作るかはそのうち書くかもしれません。