Deadfish est un "langage de programmation" blague avec quatre commandes. Étant donné que la page Esolang est un peu contradictoire et que les interprètes de cette page ne fonctionnent pas tous exactement de la même manière, vous devez implémenter la variante suivante:
spécification
- Il existe un accumulateur d'une taille d' au moins 16 bits, plus est autorisé, mais moins ne l'est pas. Les nombres négatifs n'ont pas besoin d'être pris en charge. L'accumulateur est au
0démarrage du programme. - Il existe les deux ensembles de quatre commandes suivants, et votre programme doit prendre en charge les deux en même temps.
Poisson-mort standard Vari Variante XKCD │ Signification ─────────────────────┼──────────────────┼───────── ─────────────────────────── i │ x │ Accumulateur d'incréments d │ d │ Décrémenter l'accumulateur s │ k │ Carré (acc = acc * acc) o │ c │ Accumulateur de sortie, en nombre - Si, après avoir exécuté une commande, l'accumulateur est soit
-1ou256, l'accumulateur doit être remis à zéro. Notez que ce n'est pas un bouclage normal. Si, par exemple, l'accumulateur l'est20et que lascommande est exécutée, l'accumulateur doit l'être400après. De même, si l'accumulateur est257et ladcommande est exécutée, l'accumulateur devrait devenir0. - Toute entrée qui ne fait pas partie de ces commandes doit être ignorée.
Programmes de test
xisksodevrait sortir0xiskiscdevrait sortir289
E / S
Votre programme devrait afficher une invite: >>. L'invite doit être au début d'une nouvelle ligne. Il doit ensuite lire une ligne d'entrée utilisateur et exécuter les commandes données de gauche à droite. Lors de la sortie de nombres, les nombres doivent être séparés. C'est à dire, 12 34est OK, 12,34est OK,
12
34
est OK, mais 1234ne l'est pas.
Votre programme doit continuer à le faire en boucle, au moins jusqu'à ce qu'il EOFsoit atteint.
Exemple de session:
>> xiskso
0
>> xiskisc
289
>> ddddo ddddo
285
281
>> ddddo ddddo
277
273
>> dddddddo
266
>> dddddddddo
257
>> do
0
>> do
0
>> io
1
>>
#{STDIN.gets}marcherait mais en effet ça ne marche pas.