L'obiettivo è scrivere un programma che codifichi un altro programma (input) con il minor numero possibile di caratteri.
punteggio
- Il punteggio è uguale al diverso numero di caratteri necessari per l'output.
- Il punteggio più basso è migliore.
Regole
- Nessuna lingua di destinazione con un set limitato di comandi. (No Brainf ** k, Whitespace ecc.)
Modifica : intendo almeno 26 personaggi significativi,A
non cambia il modo in cui funziona un programma Brainf ** k, quindi non puoi contare questo personaggio. Lo stesso vale per gli spazi bianchi. - La lingua di destinazione deve esistere nel momento in cui questa domanda è scritta.
- Devi includere una piccola spiegazione su come archiviare il tuo punteggio.
- Il programma di input è valido.
- Il programma codificato deve essere un programma valido nella stessa lingua dell'input.
- Il programma codificato deve fare lo stesso lavoro del programma originale.
- Il tuo codificatore deve funzionare per ogni programma valido in quella lingua.
- Includi alcuni input e output di esempio.
Appunti
- L'encoder può essere scritto in qualsiasi lingua, non solo nella lingua di destinazione.
- Non si tratta di code-golf , i programmi leggibili sono incoraggiati.
- Il grande obiettivo è vedere quanti personaggi diversi sono necessari per scrivere qualcosa in quella lingua. Non ho accettato BF ecc. Perché non ci sarebbero state sfide.
- Questo è stato ispirato da Print una stringa con il minor numero possibile di caratteri distinti , potresti prenderlo come metagolf per quella domanda.
Esempio
In Java, puoi usare \uXXXX
invece altri caratteri. Una voce valida codifica ogni carattere dall'input in questo modo. Ciò avrebbe un punteggio di 18. ( \ 0-9a-f
)
Codice in Tcl, codifica un programma Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
leggo solo una riga di input? E ti sei perso u
nel tuo codificatore (ma d'altra parte non hai bisogno di spazio e quindi il punteggio rimane lo stesso).