Хочу порешать Unknown Language Round 4, но наткнулся на странное поведение оператора # в конце строки.
Так как код тороидален, то следующий код циклится на печати единицы:
1.
Между тем, мы можем практически выяснить, что pop из пустого стека выдавливает ноль:
1..@
И следующий код теоретически должен напечатать единицу, а потом зациклиться на нуле, потому что # реализует пропуск push(1):
1.#
Но увы, циклится печать единицы. Потому что в интерпретаторе codeforces # не работает через границу. В Википедии, правда, это поведение не регламентировано, ровно как и на Esolang, но мне кажется, что это косяк.
Ссылки на саппорт на сайте не нашел, поэтому пишу сюда. Может быть, кому-нибудь еще захочется высказаться.









Цитата из документации по Funge-98
намекает, что прыжок не должен считать перевод строки за ячейку. Однако
но не совсем понятно, что делается в случае двухбайтового (виндового) перевода.
Скорее всего, программа просто считается тором 80x25, и всё, что не написано, заполняется noop-ами. Так что прыжок происходит не через единицу, а через четвёртую, не написанную, клетку первой строки.
Например, здесь явно написано про размеры 80x25.