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?Respostas:
CJam, 25
Experimente online
Explicação:
O bloco:
No final, a string solicitada (se houver), a representação da matriz, o bloco e a string "_ ~" são impressas automaticamente.
fonte
Python, 221 bytes
Para testar isso facilmente, use
./thisgolf.py "yourfirststring" | python -c "import sys;exec(sys.stdin.read().split('\n')[1])" "your second string" <N>
, repetindo o último bit quantas vezes quiser.fonte
Python 2, 207 bytes
Construído em minha outra solução, mas muda o programa , essa tarefa é mais simples, então eu pude jogar mais. Se eu consegui levar a entrada para stdin, isso deve ser muito menor.
fonte
Javascript ES6,
130128121120113 bytesfonte
\n
por uma nova linha real.