Scrivi un programma che accetta come input una stringa e un numero intero n
e genera:
- La stringa che è stata passata al programma
n
qualche tempo fa; - Un nuovo programma che verrà utilizzato per la prossima chiamata.
Non è possibile memorizzare alcun dato al di fuori del programma e il programma non può chiamare i programmi precedenti nella catena. Se la stringa non esiste, genera una stringa vuota (ma continua a produrre il programma successivo).
Esempio di esecuzione, in cui utilizzo la notazione program_n
per ciascun programma successivo (Naturalmente, [This text is the nth program]
verrebbe sostituito con il codice effettivo.)
$ 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" alla linea di output come [program_3, One]
se fosse quello che vorresti vedere. Se entrambi gli output vanno allo stdout, come dovrebbero essere separati? Sono consentite anche le funzioni anziché i programmi completi?