Aλexander
Denis
у мейнстрима куча отрицательных черт
Denis
компании пользуются, все боятся за совместимость
Denis
новые фичи не пилят
Denis
дабы не потревожить шаткий баланс
Ю ли я? 🤔
Ну вон в C# сколько всего впилили за 15 лет
Denis
а сколько не впилили?
Ю ли я? 🤔
А в хаскель сколько впилили? Что нового в Haskell 2010 по сравнению с 98?
Denis
которую можно понять, но она в целом против прогресса
Denis
поэтому мне нравится что оно в таком состоянии как сейчас вызревает
Denis
Leonid 🦇
Хаскель это ghc а не стандарт
Denis
угу
A64m
Дмитрий
А что даёт Semigroup (as superclass of) Monoid Proposal, просто интересно...
Ignat
примерно то же самое, что и functor - applicative - monad, казалось бы
Ignat
странно, когда одно является более сильной версией другого, но в системе типов это никак не отражено
Дмитрий
Ну мне странно, что в системе типов до сих пор не отображается тот факт, что монада - это моноид... что как бы даже в определении написано, но ...
Ignat
он в другой категории, что ты ему сделаеш
Leonid 🦇
Дмитрий
Leonid 🦇
NotEmptyList
Ignat
NonEmpty?
A64m
минимум, максимум
Дмитрий
Leonid 🦇
Вообще на Endo можно из любой функции a -> a сделать моноид
кана
Last/First для non-empty тоже можно перевести с maybe
Andrey
как и из любой полугруппы расширив тип через Мэйби или как-нибудь еще https://habrahabr.ru/post/328110/
Andrey
инвайт - прост добавь воды (нейтральный элемент)
Denis
Denis
для любой мономорфной, тащемта
кана
forall a. "из любой функции a -> a сделать моноид"
кана
все ок, это не (forall a. a -> a)
Andrey
странно, когда одно является более сильной версией другого, но в системе типов это никак не отражено
В хаскеле все не так, как на самом деле. Например, если не ошибаюсь, на самом деле Монада не является обязательно Аппликативным функтором, и поэтому еще вчера и в хаскеле не была таковым. Или второй закон Функтора не следует из первого (иначе зачем их два), но в хаскеле вроде следует. Также есть класс типов (не помню название, Денис Москвин должен помнить, он на Кметта ссылался про это), которых на самом деле 2 с разными свойствами и законами, а в хаскеле один. Поэтому все меняется и устаканивается еще.
Leonid 🦇
Leonid 🦇
И вообще, "лол" это токсичненько
Denis
А чо не так то?
смотря где forall поставить, прозвучало как для любого id
Denis
Leonid 🦇
Конечно, могут воспринять как "дурак а выступает"
Leonid 🦇
Сделаем Хаскель более велкоминг
Alexander
там был большой каммент про монады, надо внести ясность
Alexander
конечно же любая монада является аппликативным функтором
Alexander
т.к.
pure = return
<*> = ap
выразили все методы, все законы выполняются - радость и счастье
Alexander
поэтому должно быть Applicative => Monad
Alexander
тоже самое с Functor\
Alexander
т.е. утверждение "на самом деле Монада не является обязательно Аппликативным функтором, и поэтому еще вчера и в хаскеле не была таковым" ведет к заблуждению
Alexander
почему не было => т.к. полезность аппликативного функтора поняли лет на 5-10 позже чем Monad
Alexander
поэтому сначала просто не подумали
Leonid 🦇
Alexander
а потом стандарт, ломать код и все такое
Alexander
Applicative можно разбить на Apply - pure, и Applicative
Alexander
т.к. есть инстансы с одним, но без другого
Alexander
встречаются в kmettoverse
Alexander
но разве в machines и т.п.
Alexander
тут кстати возникает вопрос - зачем учить ТК - чтобы сразу сделать как надо
Leonid 🦇
А ещё Apply => Bind.
Alexander
а не устраивать FMP - FTP
Denis
учить ТК нужно чтобы начать плеваться от этого всего программирования с боттомами и без пруфов
Denis
и уйти в математику после этого
Alexander
про разные законы, наверное имеется ввиду про разные инстансы какого-то класса
Alexander
это несколько другой вопрос
Denis
ТК научпоп != ТК
Alexander
спасибо за внимание
Евгений
Евгений
Я так и не написал заметку про dcpo-enriched категории, да? :(
Alexander
@loskutov прочитай, что я там выше написал, чтобы в заблуждение не попасть
Leonid 🦇
Haxl гнобят за *> /= >>
Alexander
есть такое
Дмитрий
Была бы моя воля, я бы пометил (») как depecated. Ибо нафига множить сущности.
Alexander
странно что binary не гнобят
Denis
Denis
Alexander
и builder-ы
Дмитрий
cereal, которая.
Alexander
где <*> /= »