È 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 0x20
e 0x7e
compreso.
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 65
e output BARB
. Questo a sua volta esce con codice 66
e uscite BARC
. Questo programma esce con codice 67
e output BAR!
. Questo non genera nulla ed esce con il codice 0
.
33 throw
lanciare 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/…