Deadfish è un "linguaggio di programmazione" scherzoso con quattro comandi. Poiché la pagina Esolang è un po 'contraddittoria e gli interpreti in quella pagina non funzionano tutti esattamente allo stesso modo, è necessario implementare la seguente variante:
specificazione
- C'è un accumulatore che ha una dimensione di almeno 16 bit, più è permesso ma meno non lo è. I numeri negativi non devono essere supportati. L'accumulatore è
0
all'avvio del programma. - Esistono i seguenti due set di quattro comandi e il programma deve supportare entrambi contemporaneamente.
Pesce morto standard │ Variante XKCD │ Significato ─────────────────────┼──────────────────┼───────── ─────────────────────────── i │ x │ Accumulatore di incremento d │ d │ Accumulatore di decremento s │ k │ Square (acc = acc * acc) o │ c │ Accumulatore di uscita, come numero
- Se, dopo aver eseguito un comando, l'accumulatore è uno
-1
o256
, l'accumulatore deve essere ripristinato a zero. Si noti che questo non è normale. Se, per esempio, l'accumulatore è20
e ils
comando viene eseguito, l'accumulatore dovrebbe essere in400
seguito. Allo stesso modo, se l'accumulatore è257
e ild
comando viene eseguito, l'accumulatore dovrebbe diventare0
. - Qualsiasi input che non è uno di questi comandi deve essere ignorato.
Programmi di test
xiskso
dovrebbe produrre0
xiskisc
dovrebbe produrre289
I / O
Il vostro programma dovrebbe visualizzare un prompt: >>
. Il prompt deve essere all'inizio di una nuova riga. Dovrebbe quindi leggere una riga di input dell'utente ed eseguire i comandi dati da sinistra a destra. Quando si generano numeri, i numeri devono essere separati. Cioè, 12 34
va bene, 12,34
va bene,
12
34
va bene, ma 1234
non lo è.
Il tuo programma dovrebbe continuare a farlo in un ciclo, almeno fino a quando non EOF
viene raggiunto.
Sessione di esempio:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}
avrebbe funzionato, ma in effetti non lo è.