Le but est d'écrire un programme qui code un autre programme (entrée) avec le moins de caractères possible.
Notation
- Le score est égal au nombre différent de caractères requis pour la sortie.
- Un score plus bas est meilleur.
Règles
- Pas de langues cibles avec un ensemble limité de commandes. (Pas de Brainf ** k, d'espaces blancs, etc.)
Edit : Je veux dire au moins 26 caractères significatifs,A
ne change pas la façon dont un programme brainf ** k fonctionne, donc vous ne pouvez pas compter ce caractère. Il en va de même pour les espaces. - La langue cible doit exister au moment où cette question est écrite.
- Vous devez inclure une petite explication sur la façon dont vous archivez votre score.
- Le programme d'entrée est valide.
- Le programme codé doit être un programme valide dans la même langue que l'entrée.
- Le programme encodé doit faire le même travail que le programme d'origine.
- Votre encodeur doit fonctionner pour chaque programme valide dans cette langue.
- Inclure un exemple d'entrée et de sortie.
Remarques
- L'encodeur peut être écrit dans n'importe quelle langue, pas seulement dans la langue qu'il cible.
- Ce n'est pas du golf de code , les programmes lisibles sont encouragés.
- Le grand objectif est de voir combien de caractères différents sont nécessaires pour écrire quoi que ce soit dans cette langue. J'ai refusé BF etc parce qu'il n'y aurait pas de défi.
- Cela a été inspiré par Imprimer une chaîne avec le moins de caractères distincts possible , vous pouvez le prendre comme métagolf pour cette question.
Exemple
En Java, vous pouvez utiliser à la \uXXXX
place d'autres caractères. Une entrée valide code ainsi chaque caractère de l'entrée. Cela aurait un score de 18. ( \ 0-9a-f
)
Code en Tcl, code un programme Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
lit pas une seule ligne d'entrée seulement? Et vous avez manqué le u
dans votre encodeur (mais d'un autre côté vous n'avez pas besoin d'espace et donc le score reste le même).