小ネタ「Quine」

Quineとは、外部ファイルを参照したりせずに自分自身のソースコードを吐き出す
プログラムを指します。元々は学者さんの名前らしいです。


HSP3でどのくらい短いのが作れるかやってみました。
20分くらい掛かってできたスクリプト

p=":q=p:wpoke q,0,34:q+p+q+p:lpoke p,0,15728:mes p+q":q=p:wpoke q,0,34:q+p+q+p:lpoke p,0,15728:mes p+q

です。
表示ではブラウザが勝手にwrapしてしまうかもしれませんが一行です。
前半では変数に文字列を定義し、後半はその文字列と全く同じ実行文が続く構成。
後半の実行文はダブルクォートと使わずに文字列を操作しています。
さて、改行が面倒なので一行PGにしたまではいいのですが、mesで表示しているので、
デフォルトのID0窓に入りきりません。
(コンソール用のExeにしてDOS窓から実行してしまえばいいのでしょうけど)
というわけで、inputのデフォルト値として出力する形に改変してみました。

p=":q=p:wpoke q,0,34:q+p+q+p:lpoke p,0,15728:p+q:input p":q=p:wpoke q,0,34:q+p+q+p:lpoke p,0,15728:p+q:input p

stopで待たなくても画面が消えないという前提。
このスクリプトをCopyし、エディタに貼付けて実行してみてください。
実行したらテキストボックスに文字列が出力されます。
テキスト全体をCopyし、エディタに貼って比べると、同一であることがわかります。