Как правило, полиглоты создаются таким образом, что каждый язык может игнорировать части кода, которые присутствуют для других языков, оборачивая их в строковые литералы, используя синтаксис комментариев или другие подобные трюки.
Ваша цель - написать полиглот, в котором для каждого языка выводится код из полиглота, который производит этот вывод. В частности, выходные данные должны быть построены из кода полиглота только с удалениями, и это должен быть quine на данном языке.
правила
- Допускаются только правильные кавычки (без чтения исходного кода, без ввода данных, вывод должен быть STDOUT или ближайшей альтернативой, если STDOUT не является опцией, а программы должны состоять из не только литералов, которые неявно печатаются).
- Поскольку разные языки могут использовать разные кодировки, здесь важны необработанные байты. Например, если язык A использует UTF-8, а язык B использует CP437, (шестнадцатеричный) код
C3 88 46 47будетÈFGдля языка A и├êFGдля языка B. - Все выходные данные должны быть различны (опять же, сравнивая необработанные байты). Это позволяет избежать сложностей при попытке ограничить версии на второстепенных языках - если два языка используют одну и ту же часть кода для одной и той же вещи, вы не можете требовать их обоих.
- Если у вас есть два языка A и B, которые
XYявляются допустимыми выходными данными для обоих, ноYZтакже действительными для B, вы можете выбратьXYв качестве выходных данных для A иYZв качестве выходных данных для B, так что вы можете требовать оба из них в своем счете но вы не можете претендоватьXYна оба языка из-за вышеуказанного правила).
- Если у вас есть два языка A и B, которые
- Все выходы должны быть максимально короткими. Например, если ваш код был
print('foo')#somethingдля Python 3 (игнорируя тот факт, что вывод неправильный), то код, который вам нужно будет выводить, будетprint('foo')иprint('foo')#не будет разрешен. Если есть несколько строк одинаковой (минимальной) длины, которые дают правильный вывод, вы можете выбрать любую из них. - Материалы должны быть полиглоты как минимум на 2 языках.
- Ваша оценка будет предоставлена
(number of programming languages with distinct outputs)**3/(total byte size of polyglot). Самый высокий балл побеждает. В случае, если две заявки наберут одинаковый балл, победит тот, кто набрал этот балл первым.