Em um único arquivo, escreva um programa que não exija entrada e não produza saída. Quando executado, ele deve reverter o nome do arquivo em que está, independentemente do nome , sem alterar o código ou produzir outros efeitos colaterais duradouros.
Qualquer maneira de conseguir isso é bom. Só importa que, uma vez que o programa seja executado, a única alteração duradoura seja que o nome do arquivo tenha sido revertido. por exemplo, nenhum novo arquivo deve estar no diretório
A execução do programa novamente deve reverter o nome. De fato, o programa deve poder ser executado arbitrariamente várias vezes.
Para os propósitos deste desafio:
- Você pode presumir que os nomes de arquivos são sempre cadeias de letras minúsculas (az) entre 1 e 127 caracteres. (Se o seu idioma exigir que os arquivos tenham extensões para executar, basta inverter a parte antes da extensão, por exemplo,
mycode.bat
→edocym.bat
.) - Você pode assumir que o arquivo de código está em um diretório por si só, para que não tenha conflitos de nomes (exceto com ele próprio).
- Você não pode assumir que o nome do arquivo não é um palíndromo, ou seja, o mesmo quando invertido. Nomes de arquivos que são palíndromos devem funcionar tão bem quanto aqueles que não são.
- Você pode ler o conteúdo ou os metadados do seu arquivo. Não há restrições de quine aqui.
- Você pode presumir que seu programa será executado em um sistema operacional comum, moderno e comum (por exemplo, Windows / Linux), pois nem todos os shells têm o mesmo conjunto de comandos.
Como um exemplo concreto, digamos que você tenha um programa Python em um arquivo chamado
mycode
em seu próprio diretório. Corridapython mycode
no terminal deve resultar na reversão do nome do arquivo para
edocym
. O arquivoedocym
deve estar sozinho em seu diretório - nenhum arquivo nomeadomycode
deve existir mais. Corridapython edocym
irá reverter o nome para
mycode
, quando o processo pode ser repetido indefinidamente.Se o mesmo arquivo Python foi renomeado
racecar
(sem alterar o código) e, em seguida, executepython racecar
nada deve mudar visivelmente, já que "carro de corrida" é um palíndromo. O mesmo se aplica se o nome do arquivo for, digamos,
a
ouxx
.
O código mais curto em bytes vence. O desempatador é a resposta votada mais alta.