Метахина - это программа, которая не является квинной, но вывод которой при запуске в качестве программы на том же языке - квин.
Целью этой задачи является написание метахина. Это код-гольф , поэтому выигрывает самый короткий код, причем самый ранний ответ используется в качестве тай-брейка. Обратите внимание, что допустимы только полные программы из-за определения квин.
Правила для Quines
Только истинные quines принимаются. То есть вам нужно вывести весь исходный код дословно в STDOUT без :
- чтение вашего исходного кода, прямо или косвенно.
- полагаясь на среду REPL, которая просто оценивает и печатает каждое выражение, которое вы передаете.
- полагаться на языковые функции, которые в некоторых случаях просто распечатывают источник.
- используя сообщения об ошибках или STDERR, чтобы написать полностью или частично quine. (Вы можете писать что-то в STDERR или выдавать предупреждения / несмертельные ошибки, если STDOUT является действительным кванем, а сообщения об ошибках не являются его частью.)
- исходный код, состоящий исключительно из литералов (будь то строковые литералы, числовые литералы и т. д.) и / или NOP.
Любой не подавляемый вывод (такой как уведомления об авторских правах, сообщения о запуске / завершении работы или задний перевод строки) может быть проигнорирован в выводе ради действительности квин.
пример
Игнорирование правила, которое запрещает программы, предназначенные только для литералов, и встроенные запросы, это было бы мета-квинью в Seriously:
"Q"
Программа состоит из единственного строкового литерала "Q"
, который неявно печатается при выводе. Когда output ( Q
) выполняется, это quine ( Q
это встроенная функция quine).
T
это простой однобайтовый ответ Pyth.Ответы:
CJam, 6 байтов
Печать
который является самым коротким правильным Quine в CJam.
Проверьте это здесь.
объяснение
Обе программы работают точно так же, так как перевод строки внутри правильного quine запрещен и включен только потому, что его удаление из вывода обходится дороже. Как работают программы:
Примечание
То же самое работает в GolfScript как
какие отпечатки
с завершающим переводом строки, который, в свою очередь, является одним из самых коротких из известных quines.
источник
Pyth,
1211109 байтСбил еще один байт благодаря @ Pietu1998.
Это печатает
который является quine в Pyth. Вы можете попробовать это здесь .
источник
jN B".[9N
или.[9N"jN B
. (jN B"jN B
еще одна настоящая квинна в 9: раздвоение тождественной функции и присоединение"
.)Деление , 6 байт
Печать
Что является самым коротким делением квин . Это работает, потому что циклические сдвиги программы не влияют на результат.
Попробуйте онлайн!
источник
Javascript ES6, 21 байт
Trivial.
источник
Python 2, 29 байт
Оказывается, знаменитая короткая питон-квин легко превращается в метахиню :)
И, поскольку нам не нужно беспокоиться о сопоставлении завершающего символа новой строки, метахин на самом деле короче!
источник
Japt,
1513 байтПроверьте это онлайн!
Эта программа выводит
которая является самой короткой из известных ква в Японии.
Как это устроено
Неконкурентная версия, 11 байт
Я только что добавил
é
команду «Повернуть». Тактеперь действующий квайн.
источник
Руби,
2523Создает классический рубиновый HEREdoc quine
Старое решение
Генерирует себя за исключением случаев, когда одинарные кавычки заменяются на двойные.
источник
JavaScript, 50 байт
Основан на кратчайшем известном человеку JS-квинте без чтения исходного кода , но на хорошие 8 байт короче. Печать
который является квайн.
источник
Рыба (> <>), 17 байт
Это работает с использованием классической рыбной квинны,
"r00g!;oooooooo|
но добавляет a,{
который сдвигает весь стек влево, так что исходная программа не является квинной, а выводится при запуске.Выходы:
который является рыбой
источник
Желе , 3 байта (не конкурирует)
К сожалению, необходимые атомы примерно на 2 недели моложе задачи.
Metaquine
Попробуйте онлайн!
Как это устроено
Куайн
Попробуйте онлайн!
Как это устроено
Так как второй
Ṙ
выводит первые два символа (”Ṙ
), по нашему определению это правильный quine.источник
Октопен-Бару, 22 байта
** Не конкурирующий ответ
Рубиновый вывод
Какие выводы
見
. Который является куиной в Октопен-Бару!источник
7 , 2 байта, задание на языковые постдаты
Длина программы составляет два байта, и ее можно интерпретировать несколькими способами; как шестнадцатеричный дамп:
как кодовая страница 437:
или, что наиболее читаемо, в восьмеричном (который обычно использует 7):
Попробуйте онлайн!
Работа этого очень проста: это стандартная 7-квина с элементом стека no-op, вставленным между двумя половинами, чтобы сделать его разным (в этом контексте
7
разделяет элементы стека). (Я мог бы также вставить это в начале723723
. Я не мог бы интерпретировать это в конце, потому что конечные 7 подобны конечному пробелу и игнорируются в упакованном кодировании, таким образом, это не будет отличаться от выходной программы. )Кстати, эта программа представляет собой палиндром в шестнадцатеричном формате, но это в основном совпадение.
источник
Недогрузка, 11 байт
Довольно просто Он распечатывает
(:aSS):aSS
, что является стандартной формой недогрузки.источник
Брахилог , 12 байт
Попробуйте онлайн!
Одна из 132 вариаций метахина одинаковой длины на лебеде, которую я перевел с фатализированной Brachylog v1 (без мошенничества). Я на самом деле написал (не в гольф, и в целом глупо) программу, чтобы распечатать все из них:
Попробуйте онлайн!
Есть две части исходного Куайн , которые могут быть заменены: несущественно
;?
может быть измененgj
илиjḍ
, и₁
может быть изменен на₃
,₅
или₇
. Если мы сохраним или изменим их вне строкового литерала одним способом и внутри строкового литерала другим способом, то вывод не будет соответствовать источнику, потому что любые варианты, присутствующие в строковом литерале, будут напечатаны как внутри, так и вне его , в результате чего получился quine, который не был начальным запуском программы.;?
,gj
Иjḍ
являются взаимозаменяемыми , поскольку все три пары строка буквальным с самим собой: за счет компоновки программы, входная переменная?
унифицирована со строкой, так что;?
пар строка с самим собой; независимо от макета,gj
оборачивает строку в список, который затем соединяется с собой; аналогичноjḍ
объединяет строку с собой, а затем разбивает ее пополам.w
Индексы с нечетными номерами являются взаимозаменяемыми, поскольку, хотя первоначально ониw
могли принимать только 0 или 1, при 0 при печати ввода вw
1 и при печати 1 первого элемента, отформатированного со вторым, инвентаризация индекса дляw
выросла во что-то, что внешне функционирует как битовое поле: младший бит нижнего индекса кодирует, является ли он прямым или отформатированным, средний бит кодирует, является ли выходная переменная изw
является неограниченным или установленным на вход, а старший бит кодирует, выполняется ли печать немедленно или задерживается до конца программы, чтобы ее можно было отследить. (Эти подписки были моим первым и пока самым большим вкладом в брахилог.) Поскольку квин и метахин не используют выходную переменную и не возвращают, все четыре нечетных индекса эквивалентны.источник
Befunge-93, 22 байта
Я просто взял стандартный quine, поместил его в кавычки, перевернул его (чтобы он правильно загружался в стек), а затем добавил в конце стопку.
Это 8 символов, добавленных к обычной квине, поэтому очень возможно, что есть лучшее решение.
источник
Turtlèd , 52 байта (неконкурентный)
На 1 меньше, чем оригинал
Работает так же, за исключением того, что в конце у него нет символа, при запуске у него будет символ в конце, который не влияет на вывод, потому что он записывает # в #. Обратите внимание, что вывод немного отличается от квин, который я создал для вызова квин, но работает так же: «пишет #, который является его собственным последним символом, подобно квине, которую я сделал. Посмотрите объяснение там .
источник
Луа, 45 байт
Код Куайна не мой.
приведет к
который является квайн. Рад
;
является необязательным в Lua.источник
Напористый , 7 байтов
Не конкурирует, поскольку язык ставит перед нами задачу.
Это стандартная квинна, но с удаленными символами новой строки. Символы новой строки ничего не значат в Pushy, но являются стандартным разделителем оператора печати и, следовательно, необходимы для истинного quine.
Попробуйте онлайн! Это выводит:
Который является самой короткой Пушистой куайной - объяснение того, как это работает, можно найти здесь .
Альтернативно,
H5-34_"
работает для того же количества байтов.источник
Пена , 14 байт
Здесь печатается вторая пена Quine, которую можно найти здесь . Это на самом деле короче, потому
.
что всегда будет ставить пробел между каждым элементом, но столбец на третьем токене позволяет мне опустить пробел перед ним.источник
Шелуха , 6 байт
Попробуйте онлайн!
Печатает стандартную лузгу лузги
S+s"S+s"
.Куайн объяснил:
источник