Quine Relay!
A quine Relais der Ordnung ist eine Reihe von Programmen in unterschiedlichen Sprachen , so dass jedes Programm Ausgänge und Ausgänge .
Hier ist beispielsweise ein 2-Quine-Relais zu sehen:
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__
gibt dieses Perl 6-Programm aus :
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
Dies gibt wiederum das ursprüngliche Ruby-Programm aus.
Die Herausforderung
Die erste Antwort ist ein Quine-Relais der Bestellung : ein normales Quine. Es kann in jeder Sprache sein.
Die nächste Antwort wählt eine andere Sprache und erstellt ein Quine-Relay der Reihenfolge Verwendung dieser beiden Sprachen.
Und so weiter. Mit der ten Antwort wird ein Relais für die te Reihenfolge erstellt, wobei die vorherigen Sprachen und eine neue, andere Sprache verwendet werden.
Gewinnen
Wenn nach 2 Wochen keine weiteren Antworten hinzugefügt wurden, ist der Gewinner die Person, die mit dem Quine-Relay höchster Ordnung geantwortet hat.
Weitere Regeln
- Niemand darf zweimal hintereinander antworten.
- Niemand kann innerhalb einer Stunde nach dem letzten Beitrag antworten.
- Sprachen, die sich je nach Version unterscheiden, werden als unterschiedlich angesehen. Somit können sowohl Python 2 als auch Python 3 Teil der Kette sein.
- Sprachen, die sich nach Compiler oder Interpreter unterscheiden, werden nicht als unterschiedlich angesehen. Daher werden Python 3 (Cython) und Python 3 als austauschbar, jedoch nicht als unterschiedlich betrachtet.
- Jede Antwort kann die Sprachen in beliebiger Weise ordnen. Wenn die dritte Antwort eine Reihenfolge von Ruby → Perl 6 → JavaScript hat, können Sie nicht nur eine Sprache an das Ende anhängen. Wenn Sie der Mischung Java hinzufügen, können Sie auf Wunsch JavaScript → Ruby → Java → Perl 6 schreiben.
Format für Antworten
n Sprache 1 → Sprache 2 →… → Sprache n
Sprache 1
language 1 code
Sprache 2
language 2 code
Sprache 3
language 3 code
…
Sprache n
language n code
Fühlen Sie sich frei, Erklärungen an einer beliebigen Stelle Ihrer Antworten hinzuzufügen.
quelle
Antworten:
10. Javascript → Foo → Gehirnfick → Wumpus → Gol> <> → RAD →> <> → Python 2 → Gehirn-Flak → 4
Bearbeiten: Für die nächste Antwort, ich habe Golf gespielt, wie der Python den Brain-Flak ein bisschen mehr hier erzeugt , aber ich kann mich nicht die Mühe machen, die Links zu aktualisieren.
Gol> <> hinzugefügt. Es ist nur kurz
rpH
nach dem Wumpus-Code. Ich habe auch den Brainfuck- und Brain-Flak-Code etwas optimiert. Nachprüfung!JavaScript (Node.js)
Probieren Sie es online!
Foo
Probieren Sie es online!
Gehirnfick
Probieren Sie es online!
Wumpus
Probieren Sie es online!
Gol> <>
Probieren Sie es online!
RAD
Probieren Sie es online!
> <>
Probieren Sie es online!
Python 2
Probieren Sie es online!
Brain-Flak
Probieren Sie es online!
4
Probieren Sie es online!
quelle
3. JavaScript → Python 2 → Foo
JavaScript
Klassische JS-Quine. Dies ist ein vollständiges Programm, das auf die Konsole ausgibt:
Probieren Sie es online!
Python 2
Python-Code druckt den JS-Code grundsätzlich in Anführungszeichen aus:
Probieren Sie es online!
Foo
Foo-Code ist JS-Code mit Anführungszeichen:
Probieren Sie es online!
quelle
String.fromCharCode(39,34)
um die wiederholten Aufrufe zu speichern?String.fromCharCode(39)+String.fromCharCode(34)
, um ein bisschen zu sparen1. Foo
Foo
Eine einfache Foo Quine:
Probieren Sie es online!
quelle
2. Python 2 → Foo
Ich habe das grundlegende Python-Quine verwendet und dann die Anführungszeichen hinzugefügt
Python:
Probieren Sie es online!
foo:
Probieren Sie es online!
quelle
5.> <> → JavaScript → Brainfuck → Python 2 → Foo
Obligatorische Antwort.
> <>
Probieren Sie es online!
JavaScript
Probieren Sie es online!
Gehirnfick
Probieren Sie es online!
Python 2
Probieren Sie es online!
Foo
Probieren Sie es online!
quelle
9. JavaScript → Foo → Brainfuck → Wumpus → RAD → Python 2 → Brain-Flak → 4
Das hat Spaß gemacht.
Keine Ahnung, warum ich beschlossen habe, dass 4 hinzugefügt werden soll, keine Ahnung, warum ich das Ganze neu gemacht habe (natürlich, um Sachen zu kopieren), aber ich habe es getan: D
JavaScript
Probieren Sie es online!
Da die Ausgabe zu groß ist, um von TIO zurückgegeben zu werden, finden Sie hier einen Tester, der alle Sprachen durchläuft.
Foo
Probieren Sie es online!
Gehirnfick
Probieren Sie es online!
Wumpus
Probieren Sie es online!
RAD
Probieren Sie es online!
> <>
><>
Gibt eine neue Zeile in der Mitte mit aus,'a'
damit die Python-Funktion vom Rest des Codes getrennt wird.Probieren Sie es online!
Python 2
Probieren Sie es online!
Python generiert den Brain-Flak etwas optimiert und verwendet dabei das vorherige Element auf dem Stapel erneut, da der Brain-Flak-Code sonst etwa ein Megabyte groß wäre.
Brain-Flak
Probieren Sie es online!
4
Probieren Sie es online!
quelle
4.> <> → JavaScript → Python 2 → Foo
> <>
Probieren Sie es online!
Ich habe das klassische Wrapping-String-Literal hinzugefügt,
'rpp>o<
an den Anfang angehängt und es auch im mittleren Teil bearbeitet.JavaScript (Node.js)
Probieren Sie es online!
Ich habe den
String.fromCharCode
Teil gemäß den Kommentaren zur letzten Antwort gekürzt . Ich weiß, dass diese Herausforderung eigentlich kein Code-Golf ist, aber ich fühle mich dadurch besser.Python 2
Probieren Sie es online!
Hinzugefügt die
\'
für den Start der> <> Quine.Foo
Probieren Sie es online!
quelle
6.> <> → JavaScript → Brainfuck → Python 2 → Brain-Flak → Foo
Obligatorische Brain-Flak-Antwort.
> <>
Probieren Sie es online!
JavaScript (Node.js)
Probieren Sie es online!
Gehirnfick
Probieren Sie es online!
Python 2
Probieren Sie es online!
Brain-Flak
Probieren Sie es online!
Ich habe den Code ausgeschlossen, da er 41568 Byte lang ist und die Zeichenbegrenzung der Antwort erreicht. Der Code ähnelt dem Brainfuck-Code und hat das folgende Format:
Foo
Probieren Sie es online!
quelle
7.> <> → JavaScript → RAD → Brainfuck → Python 2 → Brain-Flak → Foo
> <>
Probieren Sie es online!
JavaScript
Probieren Sie es online!
RAD
Probieren Sie es online!
Gehirnfick
Probieren Sie es online!
Python 2
Probieren Sie es online!
Brain-Flak
Probieren Sie es online!
Foo
Probieren Sie es online!
quelle
8. Wumpus JavaScript RAD Brainfuck Python 2 Brain-Flak Foo
Hinzufügen in einer anderen 2D-Sprache, Wumpus.
> <>
Probieren Sie es online!
Dies druckt jetzt ein Extra
"
vor dem Wumpus-Code.Wumpus
Probieren Sie es online!
Ähnlich wie beim
><>
Quine wird hier ein String-Literal um den Code gewickelt und nur der JavaScript-Abschnitt gedrucktJavaScript (Node.js)
Probieren Sie es online!
RAD
Probieren Sie es online!
Ich schließe sehr lange Codeabschnitte aus der Kette aus, um die Antwort nicht zu vervollständigen.
Gehirnfick
Probieren Sie es online!
Python 2
Probieren Sie es online!
Brain-Flak
Probieren Sie es online!
Foo
Probieren Sie es online!
Dies war eigentlich der nervigste Teil des Codes. Foo unterstützt aus irgendeinem Grund nur String-Literale mit einer Länge von 254, daher musste ich ein bisschen Golf spielen und das Javascript vom 2D-Code trennen, um es kurz zu halten. Die nächste Person muss wahrscheinlich das Javascript aufteilen.
quelle