在三阶奎因挑战之后,您的任务是编写一个使用尽可能多语言的Ouroboros程序。
也就是说,用语言A编写程序pA,该程序以语言B输出程序pB。程序pB应该以语言C输出程序pC,依此类推,直到最终程序以语言A输出原始程序pA。
循环中没有两种语言可以是相同的,也不能是彼此的子集或超集。循环中的所有程序都不相同。
最长的语言链胜出。源代码的长度为平局。
这是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”。
—
algorithmhark
非常相似(关闭):创建使用不同语言的程序链
—
Ypnypn 2014年
它实际上与此非常相似,但是它不需要序列来回循环,因此没有奎因成分。
—
Martin Ender 2014年