W jednym pliku napisz program, który nie wymaga danych wejściowych i nie generuje danych wyjściowych. Po uruchomieniu powinien odwrócić nazwę pliku, w którym się znajduje, bez względu na nazwę , bez zmiany kodu lub wywoływania innych trwałych skutków ubocznych.
Każdy sposób osiągnięcia tego jest w porządku. Liczy się tylko to, że po uruchomieniu programu jedyną trwałą zmianą jest odwrócenie nazwy pliku. np. żadne nowe pliki nie powinny znajdować się w katalogu.
Ponowne uruchomienie programu powinno odwrócić nazwę. Rzeczywiście, program powinien być w stanie być uruchamiany dowolnie wiele razy.
Na potrzeby tego wyzwania:
- Możesz założyć, że nazwy plików to zawsze ciągi małych liter (az) o długości od 1 do 127 znaków. (Jeśli twój język wymaga, aby pliki miały rozszerzenia do uruchomienia, po prostu odwróć część przed rozszerzeniem, np .
mycode.bat
→edocym.bat
). - Możesz założyć, że plik kodu jest sam w katalogu, więc nie będzie miał konfliktów nazw (z wyjątkiem samego siebie).
- Być może nie zakładamy, że nazwa pliku nie jest palindrom, czyli tyle samo, gdy odwrócony. Nazwy plików, które są palindromami, powinny działać tak samo dobrze, jak te, które nie są.
- Możesz przeczytać zawartość pliku lub metadane. Brak Quine ograniczenia tutaj.
- Możesz założyć, że twój program będzie działał na określonym, nowoczesnym, powszechnym systemie operacyjnym (np. Windows / Linux), ponieważ nie wszystkie powłoki mają ten sam zestaw poleceń.
Jako konkretny przykład, powiedzmy, że masz program w języku Python w pliku o nazwie
mycode
w jego własnym katalogu. Bieganiepython mycode
w terminalu powinno spowodować odwrócenie nazwy pliku
edocym
. Plikedocym
powinien być sam w swoim katalogu - żaden nazwany plik niemycode
powinien już istnieć. Bieganiepython edocym
odwróci nazwę z powrotem do
mycode
, w którym to momencie proces można powtarzać w nieskończoność.Jeśli nazwa tego samego pliku Python została zmieniona
racecar
(bez zmiany kodu), a następnie uruchompython racecar
nic nie powinno się wyraźnie zmienić, ponieważ „samochód wyścigowy” to palindrom. To samo dotyczy, jeśli nazwa pliku to, powiedzmy,
a
lubxx
.
Najkrótszy kod w bajtach wygrywa. Tiebreaker jest wyżej głosowaną odpowiedzią.