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
mycodeem seu próprio diretório. Corridapython mycodeno terminal deve resultar na reversão do nome do arquivo para
edocym. O arquivoedocymdeve estar sozinho em seu diretório - nenhum arquivo nomeadomycodedeve existir mais. Corridapython edocymirá 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 racecarnada deve mudar visivelmente, já que "carro de corrida" é um palíndromo. O mesmo se aplica se o nome do arquivo for, digamos,
aouxx.
O código mais curto em bytes vence. O desempatador é a resposta votada mais alta.