Schreiben Sie ein Programm, das eine Zeichenfolge und eine Ganzzahl als Eingabe verwendet und Folgendes n
ausgibt:
- Die Zeichenfolge, die vor einiger Zeit an das Programm übergeben
n
wurde. - Ein neues Programm, das für den nächsten Aufruf verwendet wird.
Sie können keine Daten außerhalb des Programms speichern und Ihr Programm kann keine vorherigen Programme in der Kette aufrufen. Wenn die Zeichenfolge nicht vorhanden ist, geben Sie eine leere Zeichenfolge aus (geben Sie aber trotzdem das nächste Programm aus).
Beispiellauf, bei dem ich die Notation program_n
für jedes nachfolgende Programm verwende ( [This text is the nth program]
würde natürlich durch tatsächlichen Code ersetzt werden.)
$ program_1 "One" 1
[This text is the second program]
$ program_2 "Two" 1
One
[This text is the third program]
$ program_3 "Three" 2
One
[This text is the fourth program]
$ program_4 "Four" 2
Two
[This text is the fifth program]
$ program_5 "Five" 1
Four
[This text is the sixth program]
program_n+1
's in die Ausgabezeile einfügen,[program_3, One]
wenn Sie dies wünschen. Wenn beide Ausgänge auf stdout gehen, wie sollen sie getrennt werden? Sind auch Funktionen anstelle von Vollprogrammen erlaubt?Antworten:
CJam, 25
Probieren Sie es online aus
Erläuterung:
Der Block:
Am Ende werden die angeforderte Zeichenfolge (falls vorhanden), die Darstellung des Arrays, der Block und die Zeichenfolge "_ ~" automatisch gedruckt.
quelle
Python, 221 Bytes
Um dies einfach zu testen
./thisgolf.py "yourfirststring" | python -c "import sys;exec(sys.stdin.read().split('\n')[1])" "your second string" <N>
, wiederholen Sie das letzte Bit so oft Sie möchten.quelle
Python 2, 207 Bytes
Aufbauend auf meinem anderen Quine-aber-Änderungsprogramm ist diese Aufgabe einfacher, so dass ich dies weiter Golf spielen konnte. Wenn ich die Eingabe auf stdin setzen könnte, sollte dies viel kürzer sein.
quelle
Javascript ES6,
130128121120113 Bytesquelle
\n
durch einen tatsächlichen Zeilenumbruch ersetzen.