Я решил убрать из стандарта слайсинг, потому что он немного неявный. Вместо них будет просто индексация. Да и не понятно, зачем нужен мне этот слайсинг. Вообще я планировал сделать это так, чтобы условно был какой-нибудь контейнер с ключами-словами и можно было сделать container['apple':'bozon'] и вышли б все элементы по индексам 'apple','aprecot','anime','bazingze','bogdan','bolvan','boris','bozon', но вообще вряд ли такое может найти где-то применение.
К тому же у меня изначально слайсоподобные операции, например u8[50] var; var[10:30]... это не то, что в других языках, как в питоне. У меня это по сути индексация в пределах [start; stop). Вот и тут теперь будет var[:] всё-равно, что var[0:lenof(var)].
Где слайсы могут быть логичными, так это в каких-нибудь readonly-строках/векторах. Например, парсим мы строку императивно, проверяем каждый раз string[i:].startswith(...). В случае питона строка и так не поддерживает item assignment, а в случае Лайси если сделать так, строка каждый раз будет копироваться начиная с индекса i до конца просто для небольшой проверки, а потом удаляться (в лучшем случае).
Так что придётся использовать отдельные функции, псевдонимы и делать типа string.slice(i,lenof(string)) и на выходе будет стринг, ссылающийся на тот же участок памяти, что и прошлый, то есть без копирования 20 КБ текста.
Кстати, насчёт псевдонимов. Недавно я ввёл их в struct. Это в общем замена "методам", к которым можно обращаться из переменной ну типа vector.normalize(). То есть взяли мы написали библиотеку math, а в ней есть темплейт normalize. И в структуру vec!N!<T> прописываем псевдонимы:
normalize -> {self = normalize(self)};
normalized -> normalize(self);
length -> length(self);
что-то типа такого. Выглядит немного неряшливо, ещё и члены находятся в тех же скобках, что и псевдонимы, что может сбить с толку, но я не собираюсь вводить какие-нибудь классы с отдельными элементами и псевдонимами или ещё что.
>>8633Хорошо.
Насчёт полярных координат это надо будет обратиться в мою библиотеку ГУИ (когда разработаю). Я собираюсь туда добавить модуль математических plotов и там будут графики и декартовы, и планирую полярные, цилиндрические, сферические заделать.
Вот мой канал, где я иногда пощу видео своей библиотеки:
http://videonwcswhrqynk.onion/channel/pDVaxIx1i33hGFj2p1uSG5vzНедавно начал разрабатывать markdown-язык для неё, чтобы ГУИ-страницы можно было описывать текстово и легко менять содержимое.
Message too long. Click here to view full text.