Você deve escrever um programa ou função que, quando é dada uma nonempty seqüência S de N caracteres ASCII imprimíveis † , gera um programa que vai sair com código de saída C , onde C é o codepoint ASCII na posição 0 em S . Este programa que você escreve, adicionalmente, a saída de um programa de P , de tal forma que, quando executado, ele sai com código de saída C " , onde C ' é o ponto de código ASCII na posição 1 em S . O programa P produzirá outro programa P ' . Esse processo se repete até que não haja mais caracteres em S. Depois disso, você não deve produzir nada, seguido por uma nova linha opcional; e deve sair com o código de saída 0.
† Os caracteres entre 0x20e 0x7einclusive.
Mais algumas regras:
- Programas de modificação automática não são permitidos: você deve enviar a fonte para STDOUT (ou, retornar o valor inicialmente)
- Você não pode ler seu próprio código-fonte.
O menor programa desse tipo em bytes vencerá.
Para alguns testes rudimentares, esse script ruby pode ser usado. (O primeiro argumento é a maneira como você invoca o script, o segundo é o programa e o terceiro é a sequência de entrada.)
Exemplo hipotético
Digamos que o programa seja FOO. Quando recebe a string "ABC", ela gera BARA. Este programa sai com código 65e saídas BARB. Por sua vez, sai com código 66e saídas BARC. Este programa sai com código 67e saídas BAR!. Isso não gera nada e sai com o código 0.
33 throwlançar um número arbitrário. Você usa negativos para o nível do sistema operacional e o deslocamento é -512. Idk muito quer, mas eu estou olhando aqui: complang.tuwien.ac.at/forth/gforth/Docs-html/...
0é sucesso. tio.run/nexus/…