Esse desafio é semelhante ao Can you Meta Quine?
Um quine é um programa que se produz em STDOUT. Esse desafio é produzir um programa A que, quando executado, produz um programa B no STDOUT. O programa B quando executado produz o programa A em STDOUT. Os programas A e B devem ser escritos (e executados) no mesmo idioma. A questão vinculada restringia A! = B. Isso parecia fácil demais. Portanto, para esta pergunta, insistimos que A e B são antiguidades, usando as seguintes regras:
- Os programas A e B não podem usar os mesmos caracteres, exceto os espaços em branco e os separadores de instrução e caracteres de pontuação.
- Os programas A e B devem conter, pelo menos, um caractere que não é um espaço em branco, nem um separador de instrução, nem um caractere de pontuação.
- Para os fins das regras 1 e 2, o termo 'espaço em branco' exclui qualquer símbolo ou sequência de símbolos que seja uma declaração, operador ou símbolo que seja interpretado (em oposição a um separador). Portanto, no idioma de espaço em branco, não há espaço em branco.
- Um separador de instruções é um elemento sintático convencionalmente usado na linguagem para separar instruções. Isso incluiria a nova linha em python ou o ponto e vírgula em Java, perl ou C.
- Um caractere de pontuação é um caractere ASCII que não é um espaço em branco nem está na classe de caracteres de palavras POSIX (ou seja, um sublinhado não é uma pontuação para esse fim) - ou seja
ispunct()
, retornaria verdadeiro, e não é_
. - O programa A, quando executado, deve produzir um programa (Programa B) em seu STDOUT, que, quando executado por sua vez, produz o Programa A.
- Os programas A e B devem estar na mesma linguagem de programação.
- A linguagem de programação usada deve realmente ser uma linguagem de programação. A menos que você faça um bom caso, sugiro que seja Turing completo.
- Pelo menos um de A e B deve executar pelo menos uma instrução no idioma.
Isso é código de golfe, então a resposta mais curta vence, sendo a pontuação o comprimento do programa A em bytes (ou seja, o comprimento do programa B não é relevante).
A
e são a
considerados "caracteres" diferentes?