Респект за соулс от мира опенкомпов! Вики очень достойная, но логику работы сложно осилить даже на примере \0ZZ, учитывая необходимость перма-скроллинга то по списку алиасов в сырце, то по списку операторов в самой вики. Да и без поиска тут не обойтись. Пожалей наши мыши! Интереса ради я решил вникнуть в первый пример:
1) Читаю команду \0, понимаю, что это useDown(), вопросов нет
2) Читаю команду Z, осознаю, что это алиас на %`~F'ta'N` ?M*'F?M`FN``RRMN`', приступаю к расшифровке
3) Читаю команду %, смекаю, это ещё один алиас на ?{<a>==nil}, отвечающий за проверку истинности результата выполнения некоего Lua-выражения. А какого?
4) Судорожно ищу, что такое <a>, и вроде бы даже нахожу нужную секцию:
То есть, согласно вики, a - это программа, которая... что? Которая названа a?
5) Пытаюсь найти в сырцах некую программу с названием а, но тщетно
6) Допускаю, что, скорее всего, a - это переменная, которая пока еще не определена в текущем окружении. Вроде бы. То есть, наверное, выражение ?{<a>==nil} эквивалентно if a == nil. Или a - это все же программа? Ладно, хрен с ним
7) Возвращаюсь к пункту 2, читаю символ `, вновь обращаюсь к сырцам. В сырцах не нахожу. Видимо, оно в вики? Скроллю вики, нахожу искомое:
Так, падаж-ж-жи! Интересно, зачем столько вариантов... для возможности использовать внутри строк другие кавычки, когда требуется? Если да, то это хорошо, хотя классический эскейпинг через \" был бы правильнее, т.к., например, я не смогу заюзать все 3 варианта кавычек в строке "hello `sunny`, you are 'so shiny' and "beautiful"". Или все же смогу? Энивей иду вперед
8) Натыкаюсь на символ ~, определяющий алиас на подпрограмму ~F'ta'. Судя по вики, у нас теперь определена некая подпрограмма F, выполняющая команды ta
9) Ищу, что такое t и a. Сырцы говорят, что t отвечает за robot.turn(clockwise). Вероятно, переменная а и отвечает за поворот по часовой стрелке? Вроде бы понятно...
10) Читаю новый неизвестный символ N. Хоспади, только не алиас... МАМОЧКИ, ЭТО ОН. Ищу в сырцах содержимое, нахожу логику инверсии перменной a -a{not <a>}... не-е-е, все, убейте меня. Софтина хорошая, идея клёвая, но нервная система у меня одна хд