Вызов:
Напишите код, который при выполнении выведет исходный код второй программы, которая может быть выполнена на другом языке. Вторая программа должна выводить исходный код третьей программы, которая может быть выполнена на третьем языке и так далее. Последняя программа должна выводить PPCG
с необязательным трейлингом.
Победителем станет представление с большинством языков. Длина кода первой программы будет прерывателем связи.
Важные правила:
- Никакие программы не могут быть идентичными
- Каждый язык должен работать только с одним из исходных кодов. Должно быть невозможным использование одного и того же языка в двух местах цепочки, не нарушая его (см. Примеры) .
- Укороченная цепь не является сломанной цепью. Если вы можете использовать язык в другом месте, чем предполагалось, и конечный результат по-прежнему PPCG, то он недействителен
- Все версии языка считаются уникальными языками (но имейте в виду правило № 2)
Примеры:
Неверное представление:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
печатьprint'disp("PPCG")'
- Python 2:
print'disp("PPCG")'
печатьdisp("PPCG")
- Октава:
disp("PPCG")
принтыPPCG
Это работает правильно, но: вы можете запустить как первый, так и второй код в Python 2, не разрывая цепочку, поэтому это нарушает правило № 2.
Действительное представление с оценкой 3:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
печатьprint'disp("PPCG")'
- Perl:
print'disp("PPCG")'
печатьdisp("PPCG")
- Октава:
disp("PPCG")
принтыPPCG
Это тот же код, что и в недопустимом примере. Разница в том, что мы выбрали языки, которые придерживаются правила № 2: вы не можете запустить первый код в Perl / Octave, второй код в Python 3 / Octave или последний код в Python 3 / Perl. Это верно, даже если Python 2 может запускать две первые программы, потому что мы не использовали Python 2 в качестве одного из языков.