通常,以多种语言构造多语言,通过将它们包装在字符串文字中,使用注释语法或其他类似的技巧,每种语言可以忽略其他语言存在的代码部分。
您的目标是编写一个多语言版本,其中每种语言的输出是来自产生该输出的多语言版本的代码。具体来说,输出必须由仅删除的多语言代码构造而成,并且必须是给定语言的Quine。
规则
- 只要 允许适当的Quins(禁止读取源代码,禁止接受输入,如果没有STDOUT选项,则输出必须为STDOUT或最接近的替代方案,并且程序必须不仅包含隐式打印的文字,而且还应包含其他内容)。
- 由于不同的语言可以使用不同的编码,因此原始字节在这里很重要。例如,如果语言A使用UTF-8,语言B使用CP437,则(十六进制)代码
C3 88 46 47
为ÈFG
用于语言A和├êFG
语言B。 - 所有输出必须是不同的(再次比较原始字节)。这避免了尝试限制次要语言版本时的麻烦-如果两种语言使用代码的同一部分来执行相同的操作,则不能同时声明它们两者。
- 如果您有两种语言A和B,它们
XY
在这两种语言中都是有效的输出,但YZ
在B中也是有效的,那么您可以选择XY
作为AYZ
的输出和B的输出,因此可以在分数中同时使用它们(但XY
由于上述规则,您无法同时使用两种语言。
- 如果您有两种语言A和B,它们
- 所有输出必须尽可能短。例如,如果您的代码是
print('foo')#something
,对于Python 3(忽略输出不正确的事实),您需要输出的代码将是print('foo')
,并且print('foo')#
将不允许使用。如果有多个长度相等(最小)的字符串产生正确的输出,则可以选择其中任何一个。 - 提交内容必须是至少两种语言的多语种。
- 您的分数将由给出
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
。最高分获胜。如果两个提交者得分相同,则首先达到该得分的提交者将获胜。