Sb forum speech.png DiscordLink.png FacebookLink.png RedditLink.png SteamLink.png TwitterLink.png YoutubeLink.png

Difference between revisions of "Фишки YOLOL"

From Starbase wiki
Jump to navigation Jump to search
(Страница создана // Page created)
 
m (→‎Код-гольфинг: Исправление шераховатостей)
Line 21: Line 21:
== Код-гольфинг ==
== Код-гольфинг ==


<small>(для справки, это такая дисциплина в спортивном программировании, когда участники пытаются написать кратчайший и красивейший код)</small>
<small>(для справки, это такая дисциплина в спортивном программировании, когда участники соревнуются в написании кратчайшего и красивейшего кода)</small>


Если вы хотите писать читаемый код и сократить его для размещения на чипе, используйте [https://github.com/dbaumgarten/yodk yodk] или [https://github.com/martindevans/Yolol Yololc] для сокращения кода.
Если вы хотите писать читаемый код и сократить его для размещения на чипе, используйте [https://github.com/dbaumgarten/yodk yodk] или [https://github.com/martindevans/Yolol Yololc] для сокращения кода.

Revision as of 14:25, 27 September 2020

English

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, между числом или символом и буквой, и во многих других местах.

Cookies help us deliver our services. By using our services, you agree to our use of cookies.