Цей виклик створений на святкуванні моєї першої езотеричної мови, бекхенд !
Backhand - це одновимірна мова з нелінійним потоком вказівника. Вказівник рухається одночасно трьома кроками, виконуючи лише кожну третю інструкцію.
Програма 1..1..+..O..@
додасть 1 + 1 та вихід 2 до завершення. Проміжні вказівки пропускаються, тому 1<>1()+{}O[]@
точно така ж програма.
Коли вказівник збирається відступити від кінця стрічки, він замість цього змінює напрямок і крокує в інший бік, так 1.@1.O+.
само та сама програма. Зауважте, що вона підраховує кінцеву інструкцію лише один раз. Це дозволяє нам стискати більшість лінійних програм, таких як1O+1@
Ваше завдання тут полягає в тому, щоб написати програму або функцію, яка займає рядок, і вивести інструкції, які були б виконані, якби програма трактувалася як Backhand (вам не потрібно обробляти будь-які фактичні вказівки Backhand). Ви повинні виводити лише доти, доки вказівник не опиниться на останньому символі рядка (після чого виконання зазвичай піде назад).
Але чекай , це ще не все! Коли ваша програма інтерпретується таким чином, отриманий код повинен вивести одне із наведених нижче:
(Mostly) works
Turing complete
'Recreational'
(цитати можуть бути або,'
або"
не обидва)Perfectly okay
Only a few bugs
Наприклад, якщо ваш вихідний код є code 2 backhand
, то програма ce cankb od2ahd
повинна вивести одне з цих фраз.
Тестові приклади:
"1 1 + O @" -> "11+O@"
"1O+1@" -> "11+O@"
"HoreWll dlo!" -> "Hello World!"
"abcdefghijklmnopqrstuvwxyz" -> "adgjmpsvyxurolifcbehknqtwz"
"0123456789" -> "0369" (not "0369630369")
"@" -> "@"
"io" -> "io" (Cat program in Backhand)
"!?O" -> "!?O" (Outputs random bits forever in Backhand)
"---!---!" -> "-!-----!"
І довідкова програма, написана, звичайно, Backhand ( це може бути трохи баггі. Добре, я думаю, я це виправив).
Правила.
- Стандартні лазівки заборонені
- Вхід першої програми буде містити лише друковані ASCII та нові рядки (тобто байти
0x20
-0x7E
а також 0x0A) - Ви можете вибрати, чи буде ваша друга програма перетворена з вашої першої за байтами чи символами UTF-8.
- Друга програма:
- Справа не має значення, тому ваш результат може бути,
pErFectLy OKay
якщо ви хочете. - Будь-яка кількість пробільних / провідних пробілів (новий рядок, вкладки, пробіли) також добре.
- Друга програма повинна бути тією ж мовою, що і перша, хоча не обов'язково однакового формату (програма / функція)
- Я радий включити пропозиції з коментарів до додаткових фраз (доки вони не надто короткі)
- Справа не має значення, тому ваш результат може бути,
- Оскільки це код-гольф , ваша мета - отримати найкоротший відповідь на вашу мову!
- За два тижні я присуджую 200 доларів за найкоротший відповідь бекхенду.
"---!---!"