Ziel ist es, ein Programm zu schreiben, das ein anderes Programm (Eingabe) mit möglichst wenig Zeichen codiert.
Wertung
- Die Punktzahl entspricht der unterschiedlichen Anzahl von Zeichen, die für die Ausgabe benötigt werden.
- Niedrigere Punktzahl ist besser.
Regeln
- Keine Zielsprachen mit einer begrenzten Anzahl von Befehlen. (Kein Brainf ** k, Whitespace usw.)
Bearbeiten : Ich meine mindestens 26 signifikante Zeichen,A
ändert nichts an der Funktionsweise eines Brainf ** k-Programms, daher können Sie dieses Zeichen nicht zählen. Gleiches gilt für Whitespace. - Die Zielsprache muss zu dem Zeitpunkt existieren, an dem diese Frage geschrieben wird.
- Sie müssen eine kleine Erklärung hinzufügen, wie Sie Ihre Partitur archivieren.
- Das Eingabeprogramm ist gültig.
- Das codierte Programm muss ein gültiges Programm in derselben Sprache wie die Eingabe sein.
- Das codierte Programm muss den gleichen Job wie das ursprüngliche Programm ausführen.
- Ihr Encoder muss für jedes gültige Programm in dieser Sprache funktionieren.
- Fügen Sie einige Beispieleingaben und -ausgaben hinzu.
Anmerkungen
- Der Encoder kann in einer beliebigen Sprache geschrieben sein, nicht nur in der Sprache, auf die er abzielt.
- Dies ist kein Code-Golf , lesbare Programme werden empfohlen.
- Das große Ziel ist zu sehen, wie viele verschiedene Zeichen benötigt werden, um etwas in dieser Sprache zu schreiben. Ich habe BF usw. abgelehnt, weil es keine Herausforderung geben würde.
- Dies wurde inspiriert durch Drucken einer Zeichenfolge mit möglichst wenigen unterschiedlichen Zeichen . Sie können diese als Metagolf für diese Frage verwenden.
Beispiel
In Java können Sie \uXXXX
stattdessen andere Zeichen verwenden. Ein gültiger Eintrag codiert jedes Zeichen aus der Eingabe auf diese Weise. Dies hätte eine Punktzahl von 18. ( \ 0-9a-f
)
Code in Tcl, codiert ein Java-Programm:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
lese aber nicht nur eine einzige Eingabezeile? Und du hast den u
in deinem Encoder verpasst (aber andererseits brauchst du keinen Platz und somit bleibt die Punktzahl gleich).