OOP2027
функциональщину блядь пусть допиливают, GADTs, параметрический полиморфизм, тайпклассопедию, вот это всё
кому это занюханное ооп сегодня всралось вообще? как только ты можешь удобно создавать замыкания — классы перестают быть нужны просто-напросто
@4da data TButton = TButton { getDomID :: DomID, getClickHandler :: IO () }
data TButton = TButton { getDomID :: DomID, getClickHandler :: IO () }
ну дунно, чувак, дунно... надеюсь, я правильно понял твои требования
@ulidtko а так-то там вообще FRP нужно (которое тоже юзает всего лишь пассивные данные + ФУНКЦИИ)
@4da как где? в пакете Renderer, обв.
renderComponent :: TComponent -> IO () ... renderComponent (ButtonComponent b) = ...
тупой штоле, не можешь в ADT?
или до сих пор не понятно, что связывать данные с кодом — это всё-таки хуевая идея?
@ulidtko s/пакете/модуле/
@4da алсо существует правильный, годный аргумент, которым мне здесь можно возразить, но ты его не озвучил // не палю
@4da в монаде, конечно же (это всё делабельно через дополнительно протягиваемый стейт)
@l29ah кстати, да, я ж там выше уже намекнул было про DOM
@4da ну да, а хули?
чувак, твой текущий стиль — это просто глобальная настройка такая, значение мудрёного типа, который в себя много прочего включает (например, функции для рисования кусков рамок компонентов)
@4da ну так да блядь, тупой штоли
если у тебя будет выбор «плюсы vs плюсы с лямбдами», что ты выберешь?если у тебя будет выбор «плейнси vs плейнси с ADT», что ты выберешь?
@4da бля ну сорь
прикол в том, что ты не в ту сторону копаешь, нарастание сложности фреймворка нормально себе будет мапиться на модули-типы-функции
а вот с расширяемостью есть некое наебалово (которое и есть единственное реальное отличие ADT и классов)
@4da
2027
...
@4da ето
функциональщину блядь пусть допиливают, GADTs, параметрический полиморфизм, тайпклассопедию, вот это всё
кому это занюханное ооп сегодня всралось вообще? как только ты можешь удобно создавать замыкания — классы перестают быть нужны просто-напросто
@4da
data TButton = TButton { getDomID :: DomID, getClickHandler :: IO () }
ну дунно, чувак, дунно... надеюсь, я правильно понял твои требования
@ulidtko а так-то там вообще FRP нужно (которое тоже юзает всего лишь пассивные данные + ФУНКЦИИ)
@4da как где? в пакете Renderer, обв.
тупой штоле, не можешь в ADT?
или до сих пор не понятно, что связывать данные с кодом — это всё-таки хуевая идея?
@ulidtko s/пакете/модуле/
@4da алсо существует правильный, годный аргумент, которым мне здесь можно возразить, но ты его не озвучил // не палю
@4da в монаде, конечно же (это всё делабельно через дополнительно протягиваемый стейт)
@l29ah кстати, да, я ж там выше уже намекнул было про DOM
@4da ну да, а хули?
чувак, твой текущий стиль — это просто глобальная настройка такая, значение мудрёного типа, который в себя много прочего включает (например, функции для рисования кусков рамок компонентов)
@4da ну так да блядь, тупой штоли
если у тебя будет выбор «плюсы vs плюсы с лямбдами», что ты выберешь?
если у тебя будет выбор «плейнси vs плейнси с ADT», что ты выберешь?
@4da бля ну сорь
прикол в том, что ты не в ту сторону копаешь, нарастание сложности фреймворка нормально себе будет мапиться на модули-типы-функции
а вот с расширяемостью есть некое наебалово (которое и есть единственное реальное отличие ADT и классов)
@4da
...
@4da ето