От центра Куайна :
Напишите квинну, которая принимает в качестве входных данных имя языка и выводит то же самое, что реализовано в языке ввода.
В исходной статье есть что-то, с чем вы можете работать, но, как говорит автор, это гораздо сложнее. Очевидно, вам нужно поддерживать только ограниченный набор языков. Выбор за вами, как и базовый язык.
В качестве проблемы с кодом вы получите количество языков, поддерживаемых вашей программой; выше, тем лучше.
code-challenge
quine
marcog
источник
источник
Ответы:
Рубин
питон
Обе версии принимают ввод в stdin (
ruby
или вpython
настоящее время) и генерируют вывод в stdout на любом языке.источник
Turtlèd , Python 2 и Python 3, 3, конкурирующие только за награду
все переводчики следуют за новой строкой
Turtlèd
Попробуйте онлайн!
Python 2
Попробуйте онлайн!
Python 3
Попробуйте онлайн!
Объяснение:
Для каждого языка я брал уже написанные цитаты и немного их модифицировал.
Turtlèd первый:
Turtlèd включает стандартную структуру Quine. однако, если вход заканчивается 2 или 3, он добавляет конец кода Python, либо 2, либо 3, он включает их оба отдельно, к выводу quine, а затем возвращается к началу и добавляет
x='
. В противном случае исходный код остается и выводится как обычная квиннаТакже обратите внимание, что ввод занимает дважды
!!.
, потому что источник содержит новую строку, которая служит для ввода пустой строки.однако, по пути к началу строки, чтобы избежать того факта, что строка не может быть
'
в нем, он изменяет все'
в основном источнике на пути кy
. если это так, экранирование может быть раздражающим, если возможноэто зависит от хитрости; Я не мог бы написать
(''y)
,(pseudocode:if cell is ', write y)
потому что тогда это было бы неотличимо от '. Итак, я использую Y из ввода "Python"! это был настоящий момент для меня.затем есть питонские вещи, похожие на квины.
Как работает Python quinelike вещь:
он работает как обычный quine, за исключением того, что он также включает переменную x
если он имеет вход Python 3, он работает как обычный quine и использует форматирование%, чтобы также включить исходный код Turtlèd.
если он имеет вход Python 2, он заменяет
input
в строкеraw_input
и делает то же самое в противном случае.если ввод Turtlèd, он заменяет
y
s в источнике Turtlèd и печатает его.Две программы Python функционируют одинаково и принимают ввод одинаково
источник