Escriba un programa que tome como entrada una cadena y un entero n
, y produzca:
- La cadena que se pasó al programa.
n
hace tiempo; - Un nuevo programa que se utilizará para la próxima invocación.
No puede almacenar ningún dato fuera del programa, y su programa no puede llamar a programas anteriores en la cadena. Si la cadena no existe, genere una cadena vacía (pero aún genera el siguiente programa).
Ejemplo de ejecución, donde uso la notación program_n
para cada programa sucesivo (Por supuesto, [This text is the nth program]
sería reemplazado por el código real).
$ program_1 "One" 1
[This text is the second program]
$ program_2 "Two" 1
One
[This text is the third program]
$ program_3 "Three" 2
One
[This text is the fourth program]
$ program_4 "Four" 2
Two
[This text is the fifth program]
$ program_5 "Five" 1
Four
[This text is the sixth program]
program_n+1
's a la línea de salida como [program_3, One]
si eso es lo que le gustaría ver. Si ambas salidas van a stdout, ¿cómo deberían separarse? ¿También se permiten funciones en lugar de programas completos?