Escreva um programa que tome como entrada uma string e um número inteiro n
e produza:
- A sequência que foi passada para o programa
n
vezes atrás; - Um novo programa que será usado para a próxima chamada.
Você não pode armazenar dados fora do programa, e seu programa não pode chamar programas anteriores na cadeia. Se a sequência não existir, produza uma sequência vazia (mas ainda gera o próximo programa).
Exemplo de execução, onde eu uso a notação program_n
para cada programa sucessivo (é claro, [This text is the nth program]
seria substituído pelo 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
à linha de saída como [program_3, One]
se fosse isso que você gostaria de ver. Se as duas saídas saírem do padrão, como elas devem ser separadas? Também são permitidas funções em vez de programas completos?