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 0x20
e 0x7e
inclusive.
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 65
e saídas BARB
. Por sua vez, sai com código 66
e saídas BARC
. Este programa sai com código 67
e saídas BAR!
. Isso não gera nada e sai com o código 0
.
33 throw
lanç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/…