Сергей
извините.
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Hello, World! 🎄
Сегодня ещё случайно попалось такое видео: https://youtu.be/h6fcK_fRYaI?feature=shared
Канал конечно наверно больше для детей, но сути не меняет, что я подумал, что такое может быть и об этом реально кто-то размышлял до меня.
Видео кстати не искал, попалось когда искал совершенно другие вещи которые к этому никакого отношения не имеют.
Hello, World! 🎄
В аудиторию данного чата конечно мало вписывается (сообщения выше), но может кому-то будет интересно почитать, посмотреть.
А для чего ещё флудилка есть)
Не только же программирование обсуждать, но и другие не менее важные и интересные вопросы.
Михаил
успехи на сегодня: переделал длинные строки
Михаил
теперь обычные [[ ]] не прокатывают и синтаксис зарезервирован для массивов
Михаил
а строки можно записать так: [/[ ... ]/]
Михаил
комментарии: [//[ ... ]//]
Михаил
однострочные комментарии: // comment
ну как в сях
Михаил
а то я посчитал делать коменты /* */ слишком ущербными по сравнению с луашными
Михаил
И реализованы кастомные операторы, правда, только на уровне лексера. Лексер просто должен выдавать TK_operator с закодированной читаемой строкой
Михаил
например:
+=
выдаст токен TK_operator со строкой "eadd"
Михаил
можно распарсить как инфикс и сделать вызов функции с 2 аргументами, и будет просто гениально
Михаил
хоть и немного бить по перфу...
Михаил
но имеющийся функционал и операторы по перфу не ударят
Михаил
заменил TK_operator на TK_string и теперь по идее должна печататься строка, но...
Михаил
ура наконец то они правильно генерируются
Михаил
можно спац
Михаил
а потом срочно добавлять инфиксы
Михаил
кстати... если вернуть TK_name то по идее это и будет identifier, и уже такими штуками можно обращаться к глобальным переменным
Михаил
[luar]
local mt = {
eadd = fn(self, oth) {
self.v = self.v + oth
return self
}
};
mt.__index = mt;
local obj = {v = 12};
setmetatable(obj, mt);
obj: += (8);
obj: += (12);
print(obj.v);
Михаил
немного извращенный синтаксис, но ОНО РАБОТАЕТ
(результат 32)
Михаил
Михаил
уже немного удобнее, чем писать :add()
Domka
Крута
0xSU
А был какой-то компилятор lua, написанный на lua)
Помню что от разработчика htop и luarocks, а как называется не помню
Сергей
Михаил
Михаил
а двоеточия для методов уже 20 лет как, вроде
Михаил
почти 30
Михаил
и не забывай что в синтаксисе теперь святые сишные фигурные скобочки
Михаил
Михаил
Михаил
а это был метод, значит до него : а после скобочки
Сергей
Сергей
или мне кажется
Михаил
ну да
Михаил
но это уже успех
Михаил
я потом сделаю инфиксы и все будет шикардос
Михаил
и без костылей
Михаил
я вообще костылей стараюсь избегать
Михаил
Сергей
Сергей
а как же свои кастомные((
Михаил
Михаил
Сергей
Сергей
можно комбинировать ?
Михаил
ну имя генерируется исходя из символов
Сергей
Понял
Сергей
Тогда прикольно
Михаил
да, любой оператор объявляешь
Михаил
вот такое вытворять уже можно
Михаил
Михаил
так что, если переключиться в обычный луа, то получится вот такое
> = __op_qqu
function: 0x7f557aa92450
> [lua]
> = __op_qqu(nil, 2)
2
Михаил
я, кажись, понял смысл VRELOCABLE и VNONRELOC. Это должно было быть очевидно, но для меня не было таковым, пока не наткнулся на страничку от индуса
https://github.com/dibyendumajumdar/ravi/blob/master/readthedocs/lua-parser.rst
(во второй раз)
Михаил
Михаил
Это значит, я почти разобрался в байткоде
Domka
Я пытаюсь разобраться в математике
Михаил
интегралы?
Domka
Составил идею Матеши на основе 4 вещей для простоты чтобы создать простоту изучения
Domka
Ну как составил. . . Ненаглым образом спиздил
Domka
Чтобы в игровой форме выразить
Михаил
я вот начитался этих всех умных книжек, которые говорят мол d() - дифференциал - это функция
Domka
Типа хочу сделать игру про изучение матеши, путем ее самостоятельного открытия
Domka
Диффуры это пиздец
Михаил
Domka
Хоть и такие же удобные как ООП в программировании
Domka
Вплане с его помощью можно много чего сделать
Domka
Из за реальности расчетов диффуры неотъемлемая часть как по мне
Domka
Михаил
считай что если б дифференциал был луашной функцией то надо было б вызывать его не так
d(x * x - 0.5)
а вот так
d("x * x - 0.5")
Domka
Кек
Михаил
ну и да, он бы парсил это выражение и говорил результат
Михаил
а математики еще и числа свои мнимые придумали
Михаил
ну как мнимая вторая личность
Михаил