Alexander
что значит "определение одного основано на другом" ?
Alexander
в определении Monad нету ничего про функтор
Cheese
зачем
ты утверждаешь, что Monoid может зависеть от Semigroup, только если можно выразить (<>) через mempty
Alexander
и про аппликативный функцтор
Alexander
Alexander
что такое Monoid?
Alexander
подсказываю:
> In abstract algebra, a branch of mathematics, a monoid is an algebraic structure with a single associative binary operation and an identity element.
Alexander
Alexander
прочитай определение выше
Alexander
так вот, ассоциативная бинарная операция определяет semigroup
Cheese
это одно из определений. я всегда видел определение моноида как полугруппы с единицей
Alexander
в Monoid больше структуры, но в него включается та же структура что есть и в Semigroup
Alexander
Alexander
algebraic structure with a single associative binary operation
Cheese
ты пишешь полную чепуху
a monoid — термин
is an algebraic structure — базовый объект
with a single associative binary operation and an identity element. — ограничение
ты с логикой знаком вообще?
Alexander
Alexander
при чем тут логика
Alexander
пожалуйста читай внимательнее
Cheese
кстати, ты *подумал*, что такое *is* в приводимых тобой определениях?
Alexander
и не требуй от меня того, что я не писал
Alexander
подумал, дальше что?
Alexander
не то
Alexander
ты почему-то требуешь от меня использовать только mempty
Cheese
при чем тут логика
логика — область изучает, что такое понятие, термин, определение, теория и т. д. у меня это в школе было
Alexander
кароче мне надоело
Cheese
Cheese
Alexander
показать, что ты не умеешь читать, то что тебе пишут?
Alexander
окей показал
Cheese
Alexander
хорошо
Alexander
молодец
Cheese
c fmapDefault это работает, с другими классами нет
Alexander
Functor, Applicative, Monad, Traverable, Foldable, Apply, Arrow, Category работает
Alexander
но мы будем требовать выразить <> через mempty потому, что mappend будет забанен
Alexander
не будем читать, что пишут
Alexander
ПРЕКРАСНО!
Alexander
будем говорить что-то неуместное про логину
Alexander
*логику
Cheese
если для 8 классов работает, это не значит, что для всех работает. ты делаешь ложные обобщения
Alexander
so you are
Aleksei (astynax)
Ух и токсичные вы! Мне, дураку, объясните "констреинт подразумевает, что левая часть - необходимая и достаточная, чтобы получить правую" таки? Или "если в левой части есть класс, то оный можно инстанциировать, пользуя начинку класса в правой части"? А то я совсем запутался.
Alexander
да
Alexander
левая, точно не необходимая и достаточная
Cheese
Aleksei (astynax)
Ну вот я так и думал всегда...
Alexander
такие ребята написали Ord a => Num a?
Cheese
Alexander
нашей
Aleksei (astynax)
А зачем выражать Semigroup через Monoid, если у нас class Semigroup a => Monoid a? Констреинт же говорит "на момент инстанциирования Monoid инстанс Semigroup уже будет"
Alexander
class (Eq a, Show a) => Num a (see 6.4)
Alexander
Alexander
полное определение Monoid это (1,<>)
Aleksei (astynax)
Хмм. "У нас", это про хаскель?
Cheese
очевидно, не хаскель
Alexander
вы что Haskell98 стандарт не читали
Alexander
ещё учить что-то меня будут
Alexander
токсики
Alexander
class (Eq a, Show a) => Num a (see 6.4)
Alexander
@astynax так вот, ты можешь так же записать что Monoid это (1, Semigroup)
Alexander
тогда будешь чуть меньше методов определять
Aleksei (astynax)
Хмм. Ну да
Alexander
И тут врывается PureScript!
class (Semigroup m) <= Monoid m where
Alexander
Alexander
я уточню, что меня достал такой стиль минуты 4 назад
Alexander
приношу извинения если я общался в том же стиле
Alexander
на всякий случай
Cheese
нет, от тебя стиля такого я не заметил. это я слишком злой
Cheese
в каком стиле следует указывать на логические ошибки в приличном обществе?
Aleksei (astynax)
> ограничение может быть если и только если можно выразить левое через правое
А если в правом только часть левого используется? Как всё левое восстановить?
Alexander
например?
Alexander
вообще это значит, что-то менять надо
Alexander
/me временно ушёл