3次クインチャレンジに続いて、できるだけ多くの言語を使用するOuroborosプログラムを作成します。
つまり、言語Aで、プログラムBを言語Bで出力するプログラムpAを作成します。プログラムpBは、言語CでプログラムpCを出力する必要があります。
ループ内の2つの言語を同じにすることはできません。また、互いにサブセットまたはスーパーセットにすることもできません。ループ内のプログラムはどれも同一ではありません。
最も長い言語のチェーンが勝ちます。ソースコードの長さは、タイブレーカーになります。
以下は、Venteroが提供した長さ3のソリューションの例です。
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
PythonでこのPerlスニペットを生成します
print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>
次のRubyコードを生成します
puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}
次に、元のPythonスニペットを出力します。
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
10
関連:50言語の「Ouroboros」。
—
algorithmshark 14
(閉じた状態)に非常に似て:異なる言語でのプログラムのチェーンを作成します
—
Ypnypn
@Ypnypnそれはそれの複製ではありませんか?これは、ソースコードの長さのタイブレーカーでループをできるだけ長くすることです。これまでに長さ4のウロボロスを投稿する機会は誰もありませんでした:)また、ループはチェーンとは異なります。
実際にはこれと非常に似ていますが、シーケンスをループさせる必要がないため、クインコンポーネントはありませんでした。
—
マーティンエンダー14