Deadfishは、4つのコマンドを備えたジョーク「プログラミング言語」です。Esolangページは少し矛盾しており、そのページのインタープリターはまったく同じように機能しないため、次のバリエーションを実装する必要があります。
仕様
- 少なくとも 16ビットのサイズのアキュムレータがあり、それ以上は許可されますが、それ以下は許可されません。負の数をサポートする必要はありません。アキュムレーターは
0
、プログラムの開始時にあります。 - 次の2セットの4つのコマンドがあり、プログラムは両方を同時にサポートする必要があります。
標準Deadfish│XKCDバリアント│意味 ─────────────────────┼──────────────────┼─────────── ────────────────────────────── i│x│累積アキュムレーター d│d│アキュムレーターを減少させる s│k│平方(acc = acc * acc) o│c│数値としての出力アキュムレーター
- コマンドの実行後、アキュムレータがまたはのいずれ
-1
かである256
場合、アキュムレータをゼロにリセットする必要があります。これは通常のラップアラウンドではないことに注意してください。たとえば、アキュムレータが20
であり、s
コマンドが実行された場合、アキュムレータは400
その後になります。同様に、アキュムレータが257
あり、d
コマンドが実行されると、アキュムレータはになり0
ます。 - これらのコマンドのいずれでもない入力は無視する必要があります。
テストプログラム
xiskso
出力する必要があります0
xiskisc
出力する必要があります289
I / O
プログラムにプロンプトが表示されます>>
。プロンプトは、新しい行の先頭にある必要があります。次に、ユーザー入力の行を読み取り、指定されたコマンドを左から右に実行します。数字を出力するときは、数字を区切る必要があります。すなわち、12 34
大丈夫、12,34
大丈夫、
12
34
大丈夫ですが、そうで1234
はありません。
プログラムは、少なくともこれにEOF
達するまで、ループでこれを実行し続ける必要があります。
セッションの例:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
がうまくいくと思っていただろうが、実際にはうまくいかない。