Ruby/Tk で quine 。
eval$s=%q(require"tk" r=Tk.root;r.withdraw x=y=22;s="eval$s=%q(#$s)" f=proc{c=s.slice! 0,1 (f[y+=x=22];next)if"\n"==c w=TkToplevel.new(r){ withdraw geometry"18x18+#{x}+#{y}" overrideredirect true bind"Button",proc{exit} deiconify } l=TkLabel.new(w,:text=>c) l.pack;x+=22 Tk.after(10,f)if s!="" };f[];Tk.mainloop #(c)YusukeEndoh2010)
VirtualBox 上の Ubuntu と windows 上の Xming で動作確認。
実行の様子。
tk らしい quine にしたかったのだけど、tk らしさというものがわからなかったので、とりあえず窓をいっぱい作りました。ぱぱぱぱぱ、と 1 文字ずつ窓が出てくる。
どの文字でもクリックすれば終わります。