Напишите программу со следующими свойствами:
При запуске как есть, программа не выдает выходные данные (т. Е. 0 байтов вывода).
Внутри программы есть место (по вашему выбору: оно может быть в начале, в конце или где-то посередине) со следующим свойством: изменение программы путем помещения туда любой строки приведет к тому, что результирующая программа напечатает эту строку, когда казнены.
Это должно работать независимо от того, содержит ли строка кавычки, обратную косую черту, комментарии, разделители, байты NUL и т. Д .; Неважно, что вы там разместите, строка все равно интерпретируется как строка и печатается полностью дословно. Однако вы можете не обрабатывать очень и очень длинные строки, если они приведут к тому, что компилятору не хватит памяти или тому подобное (если быть точным, вы должны по крайней мере иметь возможность обрабатывать строки длиной до 1000 байт или в три раза больше длина вашей программы, в зависимости от того, что больше).
Пример неверного решения будет
print("");
# ^ text goes here
в Python, Perl, Ruby и т.д .; хотя он работает для многих строк, он не будет работать для строки, содержащей двойные кавычки, или для строки, содержащей подстроку \n
(которая будет интерпретироваться как новая строка ).
Обратите внимание, что эта проблема, вероятно, невозможна в большинстве языков; Проблема, по крайней мере, частично в том, чтобы найти язык, на котором он работает. Выбранный вами язык должен быть языком программирования согласно определению этого сайта , например, не предлагать решение в текстовом формате .
Поскольку это код-гольф , выигрывает самый короткий шаблон программы. Тем не менее, не отчаивайтесь от представления решений, даже если они не могут победить нынешнего победителя! Вы по-прежнему можете побороться за второе, третье и т. Д. Место или просто найти как можно больше ответов там, где это работает. Вы должны, однако, убедиться, что ваша программа соответствует всей спецификации перед ее отправкой; Приближенные решения не позволят решить проблему.
AWK
, просто 1
сделало бы это.