Ce défi est similaire à Can you Meta Quine?
Une quine est un programme qui se produit lui-même sur STDOUT. Ce défi est de produire un programme A qui lors de l'exécution produit un programme B sur STDOUT. Le programme B lorsqu'il est exécuté produit le programme A sur STDOUT. Les programmes A et B doivent être écrits (et exécutés) dans la même langue. La question liée contraint A! = B. Cela semblait trop facile. Donc, pour cette question, nous insistons sur le fait que A et B sont des antiquines, en utilisant les règles suivantes:
- Les programmes A et B ne peuvent pas utiliser les mêmes caractères, sauf pour les espaces blancs et les séparateurs d'instructions et les caractères de ponctuation.
- Les programmes A et B doivent chacun contenir au moins un caractère qui n'est ni un espace ni un séparateur d'instructions, ni un caractère de ponctuation.
- Aux fins des règles 1 et 2, le terme «espace» exclut tout symbole ou séquence de symboles qui lui-même est une instruction, un opérateur ou un symbole qui est interprété (par opposition à un séparateur). Par conséquent, dans le langage des espaces blancs, il n'y a pas d'espace blanc.
- Un séparateur d'instructions est un élément syntaxique conventionnellement utilisé dans le langage pour séparer les instructions. Cela inclurait la nouvelle ligne en python, ou le point-virgule en Java, perl ou C.
- Un caractère de ponctuation est un caractère ASCII qui n'est ni un espace ni dans la classe de caractères de mot POSIX (c'est-à-dire qu'un trait de soulignement n'est pas une ponctuation à cet effet) - c'est-à-dire
ispunct()
qu'il retournerait vrai, et ce n'est pas le cas_
. - Le programme A lors de son exécution doit produire un programme (programme B) sur son STDOUT, qui, à son tour, produit le programme A.
- Les programmes A et B doivent être dans le même langage de programmation.
- Le langage de programmation utilisé doit en fait être un langage de programmation. À moins que vous ne fassiez un bon cas, je suggérerai que Turing soit complet.
- Au moins l'un des A et B doit exécuter au moins une instruction dans le langage.
C'est le golf de code, donc la réponse la plus courte l'emporte, le score étant la longueur du programme A en octets (c'est-à-dire que la longueur du programme B n'est pas pertinente).
A
et sont a
considérés comme des "personnages" différents?