Фишки YOLOL
YOLOL - очень бедный и ограниченный по функциям язык. Ограничения по размерам строки и количеству кода, а также медленная скорость выполнения стимулирует игроков на поиск более легких путей для достижения желаемого результата. Маленькая библиотека математических функций и ограниченное пространство вынуждают делать большие операции из маленьких блоков. Для этого, эта страница служит хранилищем неочевидных особенностей YOLOL, которые могут быть не очевидны при обращении к документации YOLOL.
Манипуляции со строками
Название | Код | Объяснение |
---|---|---|
“Pop” | string---string | Поднимает последний символ в string и удаляет этот символ, "abcd" становится "abc" при обращении к "d" |
Проверка пустоты | string-(string+otherstring) | Если otherstring пуста, то тогда возвращает пустую строку, иначе возвращает string |
Выбор | a="foo1" b="bar2" c="meh3" x=2 s=a+b+c-x-a-b-c s=="bar" |
Одна строка из набора будет выбрана, путем сопоставления их с соответствующими индексами, после удалит индекс, далее удалит все строки которые не подойдут к не индексированной. Если один индексированная будет подстрокой другой, то порядок строк будет иметь значение. |
Содержит | s="~meh~foo~bar~" t="foo" c=s>s-("~"+t+"~") |
Возвращает 1 если t присутствует в s, и 0, если нет. Иначе, != может быть использован вместо >, в таком случае, код более строго относится к символам в s В зависимости от значений может быть и s и t, несколько или все из дилимитеров "~" могут быть удалены или заменены на другие значения, например числа. |
Код-гольфинг
(для справки, это такая дисциплина в спортивном программировании, когда участники соревнуются в написании кратчайшего и красивейшего кода)
Если вы хотите писать читаемый код и сократить его для размещения на чипе, используйте yodk или Yololc для сокращения кода.
Сокращение названий переменных экономит вам байты, используйте f=b вместо foo=bar.
Назначение полей на переменные может выиграть вам пару байт, если вы используете эту фишку ни один раз. f=:f f f f f f f f f короче чем :f :f :f :f :f :f :f :f .
В большинстве случаев, пробелы опциональны. Помните, что ваш код может нести в себе неопределенность без пробелов в некоторых местах. Пробелы также обычно ставятся перед :, после if и then или же end, между числом или символом и буквой, и во многих других местах.