Escreva um programa (ou função) (vamos chamá-lo de P1) que, quando executado, gera outro programa P2 do mesmo idioma e exatamente 1 byte a mais que P1.
O programa P2, quando executado, deve produzir um terceiro programa P3 com 1 byte a mais que P2. P3 deve emitir um programa P4 com um byte mais longo que P3, etc. O mesmo para P5, P6, ..., P∞.
A cadeia de programas deve ir indefinidamente ou para um local onde o intérprete não aguenta mais (mas deve permanecer como um programa teoricamente válido no idioma)
Regras
- Lacunas padrão proibidas
- Todos os programas da cadeia devem estar em um idioma
- Nenhuma entrada é fornecida. A saída vai para stdout ou valor de retorno da função
- O programa deve terminar após um período de tempo. Um programa que para de gerar saída após um determinado período de tempo, mas nunca termina, não se qualifica
O programa mais curto P1 em bytes em cada idioma vence!
"puts <<2*2,2\nputs <<2*2,2\n\n2"
cresce 2 em cada iteração no Ruby. Não consegui encontrar nada melhor. : - /. Desafio interessante!