È necessario scrivere un programma o funzione che, quando somministrato un non vuota stringa S di N caratteri ASCII stampabili † , emette un programma che uscirà con codice di uscita C , dove C è il valore di codice ASCII in posizione 0 in S . Questo programma si scrive sarà inoltre l'output di un programma di P , in modo tale che, quando viene eseguito, esce con il codice di uscita C ' , dove C' è il valore di codice ASCII in posizione 1 in S . Programma P emetterà un altro programma P ′ . Questo processo si ripete fino a quando non ci sono più caratteri in S. Fatto ciò, non devi produrre nulla, seguito da una nuova riga opzionale; e dovrebbe uscire con il codice di uscita 0.
† I caratteri tra 0x20e 0x7ecompreso.
Alcune altre regole:
- Non sono consentiti programmi di modifica automatica: è necessario generare l'origine su STDOUT (o, inizialmente restituire un valore)
- Non puoi leggere il tuo codice sorgente.
Vincerà il programma più breve in byte.
Per alcuni test rudimentali, è possibile utilizzare questo script ruby . (Il primo argomento è il modo in cui invochi lo script, il secondo è il programma e il terzo è la stringa di input.)
Esempio ipotetico
Di 'che il programma è FOO. Quando viene data la stringa "ABC", viene emessa BARA. Questo programma esce con codice 65e output BARB. Questo a sua volta esce con codice 66e uscite BARC. Questo programma esce con codice 67e output BAR!. Questo non genera nulla ed esce con il codice 0.
33 throwlanciare un numero arbitrario. Si utilizzano negativi per il livello del sistema operativo e l'offset è -512. Idk molto, ma sto guardando qui: complang.tuwien.ac.at/forth/gforth/Docs-html/…
0è successo. tio.run/nexus/…