Вы должны написать программу или функцию , которая, когда дана непустая строка S из N символов ASCII для печати † , выводит программу , которая будет завершаться с кодом выхода C , где C является ASCII элемент кода в положении 0 в S . Эта программа , которую вы напишете дополнительно выводить программу P , таким образом , что при запуске, он выходит с выходом кодом C ' , где C' является ASCII элемент кода в положении 1 в S . Программа P выведет другую программу P ′ . Этот процесс повторяется до тех пор, пока в S не останется символов, После того, как это сделано, вы должны ничего не выводить, за которым следует необязательный перевод строки; и должен выйти с кодом выхода 0.
† Знаки между 0x20
и 0x7e
включительно.
Еще несколько правил:
- Самомодифицирующиеся программы недопустимы: вы должны вывести источник в STDOUT (или сначала вернуть значение)
- Вы не можете читать свой собственный исходный код.
Победит самая короткая такая программа в байтах.
Для некоторого элементарного тестирования может использоваться этот скрипт ruby . (Первый аргумент - это способ вызова сценария, второй - программа, а третий - входная строка.)
Гипотетический пример
Скажи, что программа есть FOO
. Когда дана строка «ABC», она выводит BARA
. Эта программа выходит с кодом 65
и выходами BARB
. Это в свою очередь выходит с кодом 66
и выходами BARC
. Эта программа выходит с кодом 67
и выходами BAR!
. Это ничего не выводит и выходит с кодом 0
.
33 throw
броска произвольного числа. Вы используете негативы для уровня ОС, а смещение -512. ИДК тоже много, но я смотрю здесь: complang.tuwien.ac.at/forth/gforth/Docs-html/…
0
это успех tio.run/nexus/…