Oleg
что-то связанное с блэк-боксами, посылкой сообщений, СОЛИДолом и изобретателем ноутбука
Влод
хотя не
Влод
идентити я не понял
A64m
да, диспетчеризацию по одному аргументу тоже получаем если ссылки есть
A64m
идентити я не понял
объект равен только самому себе, а не своей структурной копии
Oleg
бывает и по многим диспатч
A64m
это все экзотические ООП-ы
A64m
наследование тоже бывает множественное, не такое как через префиксинг
Oleg
это все экзотические ООП-ы
также называемые лиспами
Oleg
вот акторы в ерлангах и даже в скаловых акках некоторые считают вполне каноничным ООП там технически нет ничего про память, субтайпинг и таблицы вызовов, но действительно есть фундаментальная фича про адресацию
A64m
не каноничным, а Кеевским.
A64m
каноничное изобрели как хаки для алгола, Кей уже сильно позже нафантазировал всякого
Влод
ну кей романтик его мечтательность вдохновляла людей
Влод
никому не хочется видеть грязные хаки как образец идеологии
Oleg
кто-то вообще от идеологий не в восторге
Oleg
ну ещё и "comonad is an object" вы наверняка не приемлете, но как минимум прочитали
Влод
Не, не слышал)
Oleg
ну и прочую ересь про ООП и корекурсию
Зигохистоморфный
ну ещё и "comonad is an object" вы наверняка не приемлете, но как минимум прочитали
комонада это коалгебра в категории эндофункторов. А как известно коалгебры в основном связаны с ООП объектами и прочим
Oleg
ну и чтобы наверняка разбить включение в другую сторону, можно даже вспомнить HoTT, где субтайпинг упоминается несколько раз, а вот ООП ни разу
Oleg
Не, не слышал)
http://www.haskellforall.com/2013/02/you-could-have-invented-comonads.html?m=1
A64m
да понятно что сабтайпинг бывает без ООП, вот что такое ООП без сабтайпинга - не понятно
Cheese
ООП без типов бывает же
Oleg
и прототипно-ориентированное
A64m
дак тайпинг
это разновидность сабтайпинга - структурный сабтайпинг
Cheese
и прототипно-ориентированное
я без типов (если динамические считать типами) только прототипное знаю. какие ещё варианты?
Cheese
это разновидность сабтайпинга - структурный сабтайпинг
когда ООП в терминах сообщений — это тоже структурный?
Oleg
комонада это коалгебра в категории эндофункторов. А как известно коалгебры в основном связаны с ООП объектами и прочим
не очень понятно. Что такое коалгебра для комонады я знаю. А что такое просто коалгебра в категории эндофункторов - не знаю. Для каких функторов они коалгебры?
Oleg
это разновидность сабтайпинга - структурный сабтайпинг
он не всегда структурный, он может быть...не знаю правильного термина... ситуативным
Anonymous
Кажется, основная характеристика ООП - dynamic dispatch https://en.m.wikipedia.org/wiki/Dynamic_dispatch
Anonymous
Я не в курсе. Определение ООП наверное организация кода в объектах
parket
Кажется, основная характеристика ООП - dynamic dispatch https://en.m.wikipedia.org/wiki/Dynamic_dispatch
Когда мы говорим о полиморфизме в контексте ООП, разве мы не подразумеваем dynamic dispatch?
Влод
о ещё вопрос - обязателен ли рантаймовый полиморфизм для ооп?
Arthur
А дайте плз отзывы о решениях "фронтенд на Хаскеле". Я вот смотрю сейчас на transient-haskell (axiom) и на miso (это, фактически, реализация Elm-архитектуры на Хаскелле). В какой из них посоветуете углубиться? Может, еще ссылки на хорошие туториалы по рекомендуемому вами сабжу подкинете?
Aleksei (astynax)
А дайте плз отзывы о решениях "фронтенд на Хаскеле". Я вот смотрю сейчас на transient-haskell (axiom) и на miso (это, фактически, реализация Elm-архитектуры на Хаскелле). В какой из них посоветуете углубиться? Может, еще ссылки на хорошие туториалы по рекомендуемому вами сабжу подкинете?
Всё упрётся в GHCJS, который медленный, прожорливый, генерит адового размера JS-ки. И который трудо даже просто завести. Если всё это не останавливает, то есть miso, react-flux (я про него даже рассказывал на ruHaskell митапе), да и другие варианты
Kirill
а у axiom какой-то даж не совсем адового размера код, http://tryplayg.herokuapp.com/exec/todo.html "всего лишь" 191 килобайт с непожатым читабельным js
Aleksei (astynax)
// This object will hold all exports. var Haste = {}; Это не аксиом, и даже не хаскель (это начало упомянутого "непожатого читабельного JS"), это Haste
Kirill
а, тьфу, блин, они в качестве примера "компилятор" впихали с примером на Haste
Aleksei (astynax)
ага :)
Aleksei (astynax)
Просто hplayground всегда на Haste работал, вот я и удивился
Anonymous
Когда мы говорим о полиморфизме в контексте ООП, разве мы не подразумеваем dynamic dispatch?
не в курсе. Харпер ( https://books.google.lv/books/about/Practical_Foundations_for_Programming_La.html?id=YhZ2yMHwLm0C&printsec=frontcover&source=kp_read_button&redir_esc=y) описывает полиморфизм в Variable Types, а Dynamic Dispatch несколькими главами позже называет основной концепцией OO вот я и подумал, что это наверное о разном
Anonymous
о ещё вопрос - обязателен ли рантаймовый полиморфизм для ооп?
Если не обязателен, то очень часто (во многих ОО языках) применяется. Кажется
Aleksei (astynax)
> проблемы с заводом ghcjs преувеличены некоторое кол-во веселья я с ним имел. М.б. конечно мне не повезло, но подбор версии компилера (id коммита!), которая опять что-то сломает, но что-то починит, а так же версии ноды, на которой эта версия компилятора заведётся - то ещё удовольствие
Kirill
кложурой он нормально минифицируется, но всё равно выхлоп солидный
Kirill
вроде у нас на 60% уменьшается
Kirill
а вот под 8.2 так и недопилен, к примеру
A64m
минифицируется он нормально в смысле насколько меньше становится (у меня рекорд был 28% от неминифицированного), проблемы у меня были чтоб он вообще смог справится с тем кодом, который ghcjs делает
Kirill
хз, могу вспомнить только проблему с тем что obj.foo надо переводить в obj['foo'], в остальном никаких проблем не видел
A64m
да, это и я делал
Leonid 🦇
> After 2 years and 200,000 lines of production @elmlang code...
Leonid 🦇
да ну ваш элм
Denis
копипаста мач, ящитаю
Aleksei (astynax)
> After 2 years and 200,000 lines of production @elmlang code...
200KLoC на Elm, это всяко лучше, чем 200KLoC на JS
Denis
200KLoC на Elm, это всяко лучше, чем пером под ребро
кана
200KLoС на Elm просто могут преобразоваться в 1КLoC на js, что не так и страшно)
Kirill
@lonokhov откуда цитата?
Denis
из твиттера
Leonid 🦇
https://twitter.com/rtfeldman/status/961051166783213570 https://twitter.com/rufuse/status/961179144850722816
Leonid 🦇
какой у нас самый шустрый и маленький парсер без бэктрейса? зепта в аттопарсеке, и всё?
Aleksei (astynax)
> бэктрейса забавное прочтение для backtracking :)
Artyom
https://hackage.haskell.org/package/scanner
Artyom
бывший коллега написал его зепта чем-то не устроил, но я не помню уже, чем
Artyom
там в бенчмарках есть зепта (если запустишь их руками, картинку он забыл обновить)
Зигохистоморфный
picoparsec? https://www.stackage.org/lts-10.4/package/picoparsec-0.1.2.3
Leonid 🦇
у меня от документации на стакадже глаза болят
Leonid 🦇
жирные голубые типы
Зигохистоморфный
Leonid 🦇
всё-равно не подходит.
Andrei
мне нравится. шревты более лучше
Leonid 🦇
я вообще удивлён что там не серое на сером. моднее же.
Зигохистоморфный
Leonid 🦇