Von Quine Central :
Schreiben Sie ein Quine, das den Namen einer Sprache als Eingabe verwendet und dasselbe ausgibt, das in der Eingabesprache implementiert ist.
Der Quellartikel hat etwas, woran Sie arbeiten können, aber wie der Autor sagt, ist dies viel schwieriger. Natürlich müssen Sie nur eine begrenzte Anzahl von Sprachen unterstützen. Sie haben jedoch die Wahl, ebenso wie die Basissprache.
Als Code-Herausforderung wird Ihre Punktzahl die Anzahl der Sprachen sein, die Ihr Programm unterstützt. höher ist besser.
code-challenge
quine
marcog
quelle
quelle
Antworten:
Rubin
Python
Beide Versionen nehmen Eingaben auf stdin (
ruby
oderpython
aktuell) entgegen und generieren die Ausgabe auf stdout in einer der beiden Sprachen.quelle
Turtlèd , Python 2 und Python 3, 3 Sprachen, die nur um Kopfgeld konkurrieren
Alle Oneliner gefolgt von Newline
Turtlèd
Probieren Sie es online!
Python 2
Probieren Sie es online!
Python 3
Probieren Sie es online!
Erläuterung:
Für jede Sprache habe ich bereits geschriebene Quines genommen und ein wenig modifiziert.
Turtlèd zuerst:
Turtlèd enthält die Standard-Quine-Struktur. Sollte die Eingabe jedoch mit einer 2 oder einer 3 enden, wird das Ende des Python-Codes, entweder 2 oder 3, separat an die Ausgabe von quine angehängt und dann zum Anfang zurückgekehrt und addiert
x='
. Ansonsten wird der Quellcode wie ein normales Quine ausgegebenBeachten Sie auch, dass die Eingabe zweimal erforderlich ist
!!.
, da die Quelle eine neue Zeile enthält, in die eine leere Zeile eingegeben wird.Auf dem Weg zum Anfang der Zeichenfolge
'
ändert sich jedoch die gesamte'
Hauptquelle auf dem Weg zu , um die Tatsache zu vermeiden, dass die Zeichenfolge nicht enthalten sein kanny
. In diesem Fall könnte das Entkommen von Zitaten ärgerlich sein, wenn es überhaupt möglich istdas hängt von einem Trick ab; Ich hätte nicht schreiben können
(''y)
,(pseudocode:if cell is ', write y)
, denn dann wäre ich nicht von einem 'zu unterscheiden gewesen. also benutze ich das y aus dem eingang "python"! Das war ein echter Eureka-Moment für mich.Dann gibt es die Python quinelike Dinge.
So funktioniert das Python-Quinelike:
Es funktioniert wie ein normales Quine, enthält jedoch auch die Variable x
Wenn Python 3 eingegeben wurde, funktioniert es wie ein normales Quine und verwendet die% -Formatierung, um auch die Quelle für Turtlèd einzuschließen.
Wenn es Eingabe-Python 2 hat, ersetzt es
input
in der Zeichenfolge mitraw_input
und tut ansonsten genau das Gleiche.Wenn es sich bei der Eingabe um Turtlèd handelt, wird das
y
s in der Turtlèd-Quelle ersetzt und gedruckt.Die beiden Python-Programme funktionieren auf dieselbe Weise und nehmen Eingaben auf dieselbe Weise vor
quelle