Este quine ouroboros de 128 idiomas (un programa que emite un programa en otro idioma, que emite un programa en otro idioma más (125 idiomas después), que emite el programa original) es bastante impresionante. Pero desafortunadamente, tiene un número estático de iteraciones.
Escriba un programa que emite un programa (no necesariamente en otro idioma, pero puede serlo), que emite un programa, que emite un programa, etc., que después de n iteraciones, emite el programa original por primera vez (es decir, no intermedio el programa debería ser el mismo que el original, porque de lo contrario funcionaría una quine que ignora su entrada), donde n es un entero no negativo proporcionado como entrada. La entrada no puede ser solo un número en el código fuente original (por ejemplo, poner x = <the value of n>al inicio de su programa), debe ser uno de los siguientes:
- Pasado como argumento de línea de comando
- Leer de entrada estándar
- Se pasa como argumento a una función, que devuelve / emite el nuevo programa.
Para las etapas intermedias en el ouroboros, su programa puede ser un programa que funcione completamente o una función sin argumentos, que, cuando se llama, devolverá / generará el siguiente.
Es posible que no lea el archivo fuente en sí mismo, o que no use ningún quiltin incorporado (no creo que haya ninguno que haga esto, pero podría haberlo)
Para ser claros, si n = 0, el programa debería generar su propio código fuente.
Si n = 1, el programa debería generar un programa diferente, que genera el código fuente original.
Y así...
¡Pocos bytes ganan!
Editar:
Debería haber escrito "Para las etapas intermedias en los ouroboros, su programa puede ser un programa completamente funcional sin entrada , o una función sin argumentos". Si su programa genera el siguiente en la cadena, luego espera la entrada, está bien, pero su programa no debería necesitar el valor original de n.
getInput()se use algo así sin ninguna entrada proporcionada. ¿O podemos decir que ingrese algo aleatorio que no se usa para iteraciones posteriores, para evitar errores para el getInput()? ¿También es válida la respuesta actual de Python?
n, generar un programa que es el "programa inicial" de una quine de niteraciones ouroboros , y que nuestra respuesta no debe considerarse como una de las niteraciones. ¿Es esto correcto?