O objetivo é escrever um programa que codifique outro programa (entrada) com o menor número possível de caracteres.
Pontuação
- A pontuação é igual ao número diferente de caracteres necessários para a saída.
- Menor pontuação é melhor.
Regras
- Não há idiomas de destino com um conjunto limitado de comandos. (Não Brainf ** k, espaço em branco etc)
Editar : quero dizer, pelo menos 26 caracteres significativos,A
não muda a maneira como um programa brainf ** k opera, portanto você não pode contar esse caracter. O mesmo se aplica ao espaço em branco. - O idioma de destino deve existir no momento em que esta pergunta foi escrita.
- Você precisa incluir uma pequena explicação sobre como arquivar sua pontuação.
- O programa de entrada é válido.
- O programa codificado deve ser um programa válido no mesmo idioma da entrada.
- O programa codificado deve fazer o mesmo trabalho que o programa original.
- Seu codificador deve funcionar para todos os programas válidos nesse idioma.
- Inclua alguma entrada e saída de amostra.
Notas
- O codificador pode ser escrito em qualquer idioma, não apenas no idioma de destino.
- Isso não é código-golfe ; programas legíveis são incentivados.
- O grande objetivo é ver quantos caracteres diferentes são necessários para escrever algo nesse idioma. Eu desaprovei o BF, etc, porque não haveria desafio.
- Isso foi inspirado em Imprimir uma sequência com o menor número possível de caracteres distintos ; você pode considerá-la como metagolfe para essa pergunta.
Exemplo
Em Java, você pode usar \uXXXX
outros caracteres. Uma entrada válida codifica todos os caracteres da entrada dessa maneira. Isso teria uma pontuação de 18. ( \ 0-9a-f
)
Código em Tcl, codifica um programa Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
lê apenas uma única linha de entrada? E você perdeu o u
codificador (mas, por outro lado, não precisa de espaço e, portanto, a pontuação permanece a mesma).