人類の役に立たないポリグロットクワイン

IT
この記事は約2分で読めます。

みなさんどうも、のどかはです

ところでこれを見てください

q='q%s%s%s%s=;$a="q%s%s%s%s=";$b=chr(39);$c=chr(34);$d=chr(92);$_=q(print qq(q=$b$a;\$a=$c$a$c;\$b=chr(39);\$c=chr(34);\$d=chr(92);\$_=q($_);eval;print q#));eval;print q#;print((q[:9]%(chr(61),chr(39),q,chr(39))+q[-59:])+chr(35))';print((q[:9]%(chr(61),chr(39),q,chr(39))+q[-59:])+chr(35))#;$a=';#$a=%c%s%c;printf($a,39,$a,39);';printf($a,39,$a,39);

どう思いますか?

pythonでしょうかperlでしょうか

正解は、どっちもです

このようなどちらの言語でも動くプログラムをポリグロットと呼びます

一応grok3先生に聞いてみましょう

同じこと言ってそうですね

さて、分かったところでこのプログラムを実行してみてください

どんな結果になりましたか

え?プログラムが出力されたって?

そうですこのプログラムはプログラム自身(ソースコード)を出力するプログラムだからです

このようなプログラムをクワインと呼びます

grok3先生にも聞いてみましょう

なんか具体例をだしてくれました

優しいですね

では最後に一番上のプログラムについても聞いてみましょう

この後何度聞いてもpythonだとは理解してくれませんでした

そんな~grok3先生がそういうなら僕も自信がなくなっちゃうよー

一応証拠を置いときます(今後は動くなるのかも)

注意点として何故か最初からperlを連続して動かすと動かないです

しかもsyntax warningが出てくる…これじゃあgrok3先生を納得させれないよー

はい以上です

コメント

目次
タイトルとURLをコピーしました