Este desafío es similar a Can you Meta Quine?
Un quine es un programa que se produce en STDOUT. Este desafío es producir un programa A que cuando se ejecuta produce un programa B en STDOUT. El programa B cuando se ejecuta produce el programa A en STDOUT. Los programas A y B deben estar escritos (y ejecutarse) en el mismo idioma. La pregunta vinculada restringió A! = B. Eso parecía demasiado fácil. Entonces, para esta pregunta, insistimos en que A y B son antigüedades, usando las siguientes reglas:
- Los programas A y B no pueden usar ninguno de los mismos caracteres, salvo los espacios en blanco y los separadores de enunciados, y los caracteres de puntuación.
- Los programas A y B deben contener cada uno al menos un carácter que no sea un espacio en blanco ni un separador de enunciados, ni un carácter de puntuación.
- A los efectos de las reglas 1 y 2, el término 'espacio en blanco' excluye cualquier símbolo o secuencia de símbolos que en sí mismo sea una declaración, operador o símbolo que se interprete (en lugar de un separador). Por lo tanto, en el lenguaje de espacios en blanco, no hay espacios en blanco.
- Un separador de enunciados es un elemento sintáctico usado convencionalmente dentro del lenguaje para separar enunciados. Esto incluiría la nueva línea en python, o el punto y coma en Java, perl o C.
- Un carácter de puntuación es un carácter ASCII que no es un espacio en blanco ni en la clase de caracteres de la palabra POSIX (es decir, un guión bajo no es una puntuación para este propósito), es decir
ispunct(), devolvería verdadero, y no lo es_. - El programa A cuando se ejecuta debe producir un programa (Programa B) en su STDOUT, que cuando se ejecuta a su vez produce el Programa A.
- Los programas A y B deben estar en el mismo lenguaje de programación.
- El lenguaje de programación utilizado debe ser realmente un lenguaje de programación. A menos que haga un buen caso de lo contrario, sugeriré que debe ser Turing completo.
- Al menos uno de A y B debe ejecutar al menos una declaración dentro del lenguaje.
Este es el código de golf, por lo que gana la respuesta más corta, siendo la puntuación la longitud del programa A en bytes (es decir, la longitud del programa B no es relevante).
Ay se aconsideran diferentes "personajes"?