ソースコードと完全に同じ文字列を出力する
実用性はゼロですが、お遊び感覚でCとperlでやってみた。
Perlの場合
quine.pl
$_=q{ q[ * * * * * * * * * * * * * * Hello Quine * * * * * * * * * * ]; print"\$_=q{$_};eval\n"};eval
実行結果
$ perl quine.pl $_=q{ q[ * * * * * * * * * * * * * * Hello Quine * * * * * * * * * * ]; print"\$_=q{$_};eval\n"};eval
Cの場合
quine.c
#define quine(x) main(){return puts(#x"\nquine("#x")");} quine(#define quine(x) main(){return puts(#x"\nquine("#x")");})
実行結果
$ gcc -o quine quine.c $ ./quine #define quine(x) main(){return puts(#x"\nquine("#x")");} quine(#define quine(x) main(){return puts(#x"\nquine("#x")");})