Ecrivez un programme (ou une fonction) (appelons-le P1) qui, une fois lancé, génère un autre programme P2 du même langage, avec exactement un octet de plus que P1.
Le programme P2, lorsqu'il est exécuté, devrait générer un 3ème programme P3 de 1 octet plus long que P2. P3 doit sortir un programme P4 plus long d'un octet que P3, etc. Il en va de même pour P5, P6, ..., P.
La chaîne de programmes doit aller indéfiniment ou dans un endroit où l'interprète ne peut plus gérer (mais doit rester un programme théoriquement valide dans la langue)
Règles
- Lacunes standard interdites
- Tous les programmes de la chaîne doivent être dans une langue
- Aucune entrée n'est donnée. La sortie passe à stdout ou à la valeur de retour de la fonction
- Le programme doit se terminer après un certain temps. Un programme qui arrête de générer une sortie après un certain intervalle de temps mais ne se termine jamais n'est pas éligible
Le programme le plus court P1 en octets dans chaque langue gagne!
"puts <<2*2,2\nputs <<2*2,2\n\n2"
grandit de 2 à chaque itération en Ruby. Je n'ai rien trouvé de mieux. : - /. Défi intéressant!