Schreiben Sie in einer einzelnen Datei ein Programm, das keine Eingabe erfordert und keine Ausgabe erzeugt. Beim Ausführen sollte der Name der Datei, in der er enthalten ist , umgekehrt werden, unabhängig davon, wie der Name lautet , ohne den Code zu ändern oder andere dauerhafte Nebenwirkungen hervorzurufen.
Jeder Weg, dies zu erreichen, ist in Ordnung. Es ist nur wichtig, dass nach dem Ausführen des Programms die einzige dauerhafte Änderung darin besteht, dass der Dateiname umgekehrt wurde. zB sollten sich keine neuen Dateien im Verzeichnis befinden.
Wenn Sie das Programm erneut ausführen, sollte der Name zurückgesetzt werden. In der Tat sollte das Programm beliebig oft ausgeführt werden können.
Für die Zwecke dieser Herausforderung:
- Sie können davon ausgehen, dass Dateinamen immer Zeichenfolgen mit Kleinbuchstaben (az) zwischen 1 und 127 Zeichen sind. (Wenn für Ihre Sprache Dateien mit Erweiterungen ausgeführt werden müssen, kehren Sie einfach den Teil vor der Erweiterung um, z . B.
mycode.bat
→edocym.bat
.) - Sie können davon ausgehen, dass sich die Codedatei in einem eigenen Verzeichnis befindet, sodass keine Namenskonflikte auftreten (außer bei sich selbst).
- Sie dürfen nicht davon ausgehen, dass der Dateiname kein Palindrom ist, dh umgekehrt. Dateinamen, die Palindrome sind, sollten genauso gut funktionieren wie solche, die es nicht sind.
- Sie können den Inhalt oder die Metadaten Ihrer Datei lesen. Es gibt keine quine Einschränkungen hier.
- Sie können davon ausgehen, dass Ihr Programm auf einem bestimmten, modernen und alltäglichen Betriebssystem (z. B. Windows / Linux) ausgeführt wird, da nicht alle Shells denselben Befehlssatz haben.
Nehmen wir als konkretes Beispiel an, Sie haben ein Python-Programm in einer Datei, die
mycode
in einem eigenen Verzeichnis aufgerufen wird . Laufenpython mycode
im Terminal sollte dazu führen, dass der Dateiname in umgekehrt wird
edocym
. Die Dateiedocym
sollte sich alleine in ihrem Verzeichnis befinden - esmycode
sollte keine benannte Datei mehr existieren. Laufenpython edocym
mycode
kehrt den Namen zurück zu , an diesem Punkt kann der Vorgang auf unbestimmte Zeit wiederholt werden.Wenn die gleiche Python-Datei umbenannt wurde
racecar
(ohne den Code zu ändern) und dann ausführenpython racecar
nichts sollte sich sichtbar ändern, da "Rennwagen" ein Palindrom ist. Das gleiche gilt, wenn der Dateiname beispielsweise
a
oder lautetexx
.
Der kürzeste Code in Bytes gewinnt. Tiebreaker ist höher gestimmte Antwort.