Ein Metaquine ist ein Programm, das kein Quine ist, dessen Ausgabe, wenn es als Programm in derselben Sprache ausgeführt wird, ein Quine ist.
Das Ziel dieser Herausforderung ist es, eine Metaquine zu schreiben. Dies ist Code-Golf , also gewinnt der kürzeste Code, wobei die früheste Antwort als Tiebreaker verwendet wird. Beachten Sie, dass aufgrund der Definition eines Quines nur vollständige Programme zulässig sind.
Regeln für Quines
Es werden nur echte Quines akzeptiert. Das heißt, Sie müssen den gesamten Quellcode wörtlich in STDOUT ausgeben, ohne :
- Lesen Sie Ihren Quellcode direkt oder indirekt.
- Verlassen Sie sich auf eine REPL-Umgebung, die einfach jeden Ausdruck, den Sie eingeben, auswertet und druckt.
- Verlassen Sie sich auf Sprachfunktionen, die in bestimmten Fällen nur die Quelle ausdrucken.
- Verwenden von Fehlermeldungen oder STDERR, um den Quine ganz oder teilweise zu schreiben. (Sie können Dinge in STDERR schreiben oder Warnungen / nicht schwerwiegende Fehler erzeugen, solange STDOUT eine gültige Quine ist und die Fehlermeldungen nicht Teil davon sind.)
- Der Quellcode besteht ausschließlich aus Literalen (unabhängig davon, ob es sich um String-Literale, numerische Literale usw. handelt) und / oder NOPs.
Nicht unterdrückbare Ausgaben (z. B. Copyright-Vermerke, Meldungen zum Starten / Herunterfahren oder ein Zeilenvorschub am Ende) können in der Ausgabe ignoriert werden, um die Gültigkeit des Quines zu gewährleisten.
Beispiel
Wenn man die Regel ignoriert, die nur literale Programme und das eingebaute Quining verbietet, wäre dies eine Metaquine in Seriously:
"Q"
Das Programm besteht aus dem Einzelzeichenfolgenliteral "Q"
, das implizit bei der Ausgabe ausgegeben wird. Wenn output ( Q
) ausgeführt wird, handelt es sich um eine Quine-Funktion ( Q
die integrierte Quine-Funktion).
T
ist eine einfache 1-Byte-Pyth-Antwort.