Quine Relay!
Реле Quine порядка - это серия программ P 1 … P n на разных языках, так что каждая программа P i выводит P i + 1, а P n выводит P 1 .
Например, здесь можно увидеть ретранслятор 2-Quine:
Ruby → Perl 6:
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
$><<"print ("
p (DATA.read*2).chars.map(&:ord)
$><<".map: &chr).join"
__END__
выводит эту программу Perl 6 :
print ([36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10, 36, 62, 60, 60, 34, 112, 114, 105, 110, 116, 32, 40, 34, 10, 112, 32, 40, 68, 65, 84, 65, 46, 114, 101, 97, 100, 42, 50, 41, 46, 99, 104, 97, 114, 115, 46, 109, 97, 112, 40, 38, 58, 111, 114, 100, 41, 10, 36, 62, 60, 60, 34, 46, 109, 97, 112, 58, 32, 38, 99, 104, 114, 41, 46, 106, 111, 105, 110, 34, 10, 10, 95, 95, 69, 78, 68, 95, 95, 10]
.map: &chr).join
который в свою очередь выводит оригинальную программу Ruby.
Соревнование
Первым ответом будет эстафетный запрос порядка : обычный квин. Это может быть на любом языке.
Следующий ответ выберет другой язык и создаст эстафетный запрос порядка используя эти два языка.
И так далее. В -го ответ будет создать заказ к Куайну реле , используя предыдущие К - 1 языкам и новый, другой язык.
выигрыш
Если через 2 недели больше ответов не было добавлено, победителем становится тот, кто ответил с помощью эстафеты Куайна самого высокого порядка.
Больше правил
- Никто не может ответить дважды подряд.
- Никто не может ответить в течение часа после своего последнего сообщения.
- Языки, которые отличаются по версии, считаются разными. Таким образом, Python 2 и Python 3 могут быть частью цепочки.
- Языки, которые отличаются компилятором или интерпретатором, не считаются различными. Итак, Python 3 (Cython) и Python 3 считаются взаимозаменяемыми, но не различаются.
- Каждый ответ может упорядочить языки любым способом. Если третий ответ имеет порядок Ruby → Perl 6 → JavaScript, вы не ограничены добавлением языка до конца. Если вы добавляете Java в смесь, то вы можете написать JavaScript → Ruby → Java → Perl 6, если хотите.
Формат ответов
п. Язык 1 → Язык 2 →… → Язык n
Язык 1
language 1 code
Язык 2
language 2 code
Язык 3
language 3 code
...
Язык н
language n code
Не стесняйтесь добавлять объяснения в любом месте ваших ответов.
источник
Ответы:
10. Javascript → Foo → brainfuck → Wumpus → Gol> <> → RAD →> <> → Python 2 → Brain-Flak → 4
Изменить: Для следующего ответа, я играл в гольф, как Python генерирует Brain-Flak немного больше здесь , но я не могу потрудиться обновить ссылки.
Добавлено Gol> <>. Это просто немного
rpH
после кода Wumpus. Я также несколько оптимизировал код Brainfuck и Brain-Flak. Проверка!JavaScript (Node.js)
Попробуйте онлайн!
Foo
Попробуйте онлайн!
Brainfuck
Попробуйте онлайн!
Wumpus
Попробуйте онлайн!
Gol> <>
Попробуйте онлайн!
РАД
Попробуйте онлайн!
> <>
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Мозг-Flak
Попробуйте онлайн!
4
Попробуйте онлайн!
источник
3. JavaScript → Python 2 → Foo
JavaScript
Классический JS Quine. Это полная программа, которая выводит на консоль:
Попробуйте онлайн!
Python 2
Код Python в основном выводит код JS с кавычками:
Попробуйте онлайн!
Foo
Код Foo - это код JS с кавычками:
Попробуйте онлайн!
источник
String.fromCharCode(39,34)
экономить на повторных вызовах?String.fromCharCode(39)+String.fromCharCode(34)
немного сэкономить ;-)1. Фу
Foo
Простой Foo Quine:
Попробуйте онлайн!
источник
2. Python 2 → Foo
я использовал основную цитату Python, а затем добавил цитаты
питон:
Попробуйте онлайн!
Foo:
Попробуйте онлайн!
источник
5.> <> → JavaScript → brainfuck → Python 2 → Foo
Обязательный ответ.
> <>
Попробуйте онлайн!
JavaScript
Попробуйте онлайн!
Brainfuck
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Foo
Попробуйте онлайн!
источник
9. JavaScript → Foo → Brainfuck → Wumpus → RAD →> <> → Python 2 → Brain-Flak → 4
Это ... было .. весело.
Понятия не имею, почему я решил добавить 4, не знаю, почему я переделал всю эту вещь (конечно, копируем все вокруг), но я сделал это: D
JavaScript
Попробуйте онлайн!
Поскольку вывод слишком велик для возврата TIO, вот тестер, который циклически перебирает все языки.
Foo
Попробуйте онлайн!
Brainfuck
Попробуйте онлайн!
Wumpus
Попробуйте онлайн!
РАД
Попробуйте онлайн!
> <>
><>
выводит новую строку в середине с'a'
тем, чтобы функция python была отделена от остальной части кода.Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Python генерирует мозговой флакон, несколько оптимизированный, повторно используя предыдущий элемент в стеке, потому что иначе код мозгового штурма был бы около мегабайта.
Мозг-Flak
Попробуйте онлайн!
4
Попробуйте онлайн!
источник
4.> <> → JavaScript → Python 2 → Foo
> <>
Попробуйте онлайн!
Я добавил классический литерал строки переноса, добавив
'rpp>o<
его в начало и также отредактировав его в центральной части.JavaScript (Node.js)
Попробуйте онлайн!
Я сократил
String.fromCharCode
часть согласно комментариям к последнему ответу. Я знаю, что этот вызов на самом деле не код-гольф, но он заставляет меня чувствовать себя лучше.Python 2
Попробуйте онлайн!
Добавлено
\'
для начала> <> quine.Foo
Попробуйте онлайн!
источник
6.> <> → JavaScript → brainfuck → Python 2 → Brain-Flak → Foo
Обязательный ответ Brain-Flak.
> <>
Попробуйте онлайн!
JavaScript (Node.js)
Попробуйте онлайн!
Brainfuck
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Мозг-Flak
Попробуйте онлайн!
Я исключил код, так как он составляет 41568 байт и достигает предела символов ответа. Код похож на код брейкфук и имеет формат:
Foo
Попробуйте онлайн!
источник
7.> <> → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
> <>
Попробуйте онлайн!
JavaScript
Попробуйте онлайн!
РАД
Попробуйте онлайн!
Brainfuck
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Мозг-Flak
Попробуйте онлайн!
Foo
Попробуйте онлайн!
источник
8.> <> → Wumpus → JavaScript → RAD → brainfuck → Python 2 → Brain-Flak → Foo
Добавление на другом 2D языке, Wumpus.
> <>
Попробуйте онлайн!
Это теперь печатает дополнительный
"
перед кодом Wumpus.Wumpus
Попробуйте онлайн!
Подобно
><>
квине, это оборачивает строковый литерал вокруг кода и печатает только раздел javascriptJavaScript (Node.js)
Попробуйте онлайн!
РАД
Попробуйте онлайн!
Я исключаю из цепочки очень длинные участки кода, чтобы не заполнить ответ.
Brainfuck
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Мозг-Flak
Попробуйте онлайн!
Foo
Попробуйте онлайн!
На самом деле это была самая раздражающая часть кода. Foo почему-то поддерживает только строковые литералы длиной 254, поэтому мне пришлось немного поиграть в гольф и отделить Javascript от 2D-кода, чтобы он был коротким. Следующему человеку, вероятно, придется разделить Javascript.
источник