目標は、できるだけ少ない文字で他のプログラム(入力)をエンコードするプログラムを作成することです。
得点
- スコアは、出力に必要な異なる文字数に等しくなります。
- スコアが低いほど優れています。
ルール
- 限られたコマンドセットを持つターゲット言語はありません。(Brainf ** k、ホワイトスペースなどはありません)
編集:私は少なくとも26人の重要なキャラクターを意味しA
ますが、brainf ** kプログラムの動作は変わらないので、このキャラクターを数えることはできません。空白についても同様です。 - この質問が書かれている時点で、ターゲット言語が存在する必要があります。
- スコアをアーカイブする方法について、簡単な説明を含める必要があります。
- 入力プログラムは有効です。
- エンコードされたプログラムは、入力と同じ言語の有効なプログラムでなければなりません。
- エンコードされたプログラムは、元のプログラムと同じジョブを実行する必要があります。
- エンコーダは、その言語のすべての有効なプログラムで動作する必要があります。
- サンプルの入力と出力を含めます。
ノート
- エンコーダーは、ターゲットとする言語だけでなく、任意の言語で作成できます。
- これはcode-golfではなく、読み取り可能なプログラムが推奨されます。
- 大きな目標は、その言語で何かを書くために必要な文字数を確認することです。私はBFなどを拒否しました。なぜなら、挑戦がないからです。
- これは、できるだけ少ない文字数で文字列を印刷することに触発されたもので、その質問のメタゴルフとみなすことができます。
例
Javaでは、\uXXXX
代わりに他の文字を使用できます。有効なエントリは、この方法で入力からすべての文字をエンコードします。これは18のスコアになります。(\ 0-9a-f
)
Tclのコードは、Javaプログラムをエンコードします。
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
が、1行の入力だけを読みませんか?そしてu
、あなたはあなたのエンコーダで見逃しました(しかし、一方であなたはスペースを必要としないので、スコアは同じままです)。