Anonymous 02/21/2021 (Sun) 07:33:24 No.9423 del
(5.47 KB 1200x800 abc.png)
Вчера делал дюпинг. Толком не проверил, для дебаггинга языка надо сделать библиотеку repr.

Суть токова, я понял, что нельзя разрешать операции между мультивекторами разной размерности:
abc[:] = a[:][:] + b[:][:], потому что будут проблемы.
Зато можно одинаковой размерности:
abc[:][:] = a[:][:] + b[:][:]
Но есть проблема, когда мы выбираем, старт, стоп и шаги:
abc[0:5] = a[0:3:2] + b[0:1]
Левый элемент говорит, что хочет провести операцию на пятью элементами и заполнить ими массив. Но a выдаёт только по индексам 0 и 2, а b по индексу 0. В таком случае надо просто сдюпать, то есть будет a[0],a[2],a[0],a[2],a[0] и b[0],b[0],b[0],b[0],b[0]. Но там всё довольно сложно, я сделал ремеиндер для счётчика и будет a[0],a[2],a[1],a[0],a[2]. В любом случае, дюпинг пока не очень стандартизирован и его не следует использовать с шагами.
Зато удобно, если хочешь много элементов умножить на число: a[:] *= [number][:].
В итоге мне надо ещё штук 15 фич ввести, чтобы выпустить пререлиз Иколайси v1.0.

Я ещё придумал как реализовать модульность библиотек. Есть @import, а надо будет сделать что-то типа @importnames или как ещё назвать, эта директива препроцессора кроме импортирования будет возвращать лист имён библиотек. Таким образом, можно будет импортировать все библиотеки из некоторой директории, а потом прочекать их константы и спрепроцессить в основную библиотеку. В константах могут быть ID модулей, коллбеки всякие, структуры.


Кстати, также я позанимался своей ГУИ-библиотекой, начал вводить плоты. На картинке очень простой плот Graph2D. Функции и линии рисуются не при помощи моего графичекого движка (потому что он не работает с линиями), а при помощи моей библиотеки растеризации линий и точек. Я планирую эту библиотеку сделать такой, чтобы можно было рисовать и при помощи кистей (как в фотошопах), и разными стилями (пунктир, точка-пунктир).

Message too long. Click here to view full text.