Cheese
что значит "является"
значит, что определение одного основано на другом
Alexander
что значит "определение одного основано на другом" ?
Alexander
в определении Monad нету ничего про функтор
Cheese
зачем
ты утверждаешь, что Monoid может зависеть от Semigroup, только если можно выразить (<>) через mempty
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.
Cheese
что значит "определение одного основано на другом" ?
это логика. определение состоит из базового объекта и ограничений
Alexander
прочитай определение выше
Alexander
так вот, ассоциативная бинарная операция определяет semigroup
Cheese
это одно из определений. я всегда видел определение моноида как полугруппы с единицей
Alexander
в Monoid больше структуры, но в него включается та же структура что есть и в Semigroup
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
пожалуйста читай внимательнее
Cheese
кстати, ты *подумал*, что такое *is* в приводимых тобой определениях?
Alexander
и не требуй от меня того, что я не писал
Alexander
подумал, дальше что?
Cheese
и не требуй от меня того, что я не писал
ок, сам примени твоё высказывание про ограничения к Semigroup и Monoid. получится не то, что я написал (приписал тебе)?
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
Cheese
будем говорить что-то неуместное про логину
я не хотел, это ты начал спрашивать про термины
Aleksei (astynax)
Ух и токсичные вы! Мне, дураку, объясните "констреинт подразумевает, что левая часть - необходимая и достаточная, чтобы получить правую" таки? Или "если в левой части есть класс, то оный можно инстанциировать, пользуя начинку класса в правой части"? А то я совсем запутался.
Alexander
да
Alexander
левая, точно не необходимая и достаточная
Aleksei (astynax)
Ну вот я так и думал всегда...
Alexander
такие ребята написали Ord a => Num a?
Cheese
такие ребята написали Ord a => Num a?
это из какой вселенной?
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)
Хмм. Ну да
Cheese
полное определение Monoid это (1,<>)
я понял, что ты имел в виду, но это полугруппу можно из моноида вытащить в математике, а констрэйнты пишутся в хаскеле. как ты на двух стульях сидишь?
Alexander
И тут врывается PureScript! class (Semigroup m) <= Monoid m where
Cheese
вы что Haskell98 стандарт не читали
как это поможет рассуждать о языке GHC?
Alexander
я уточню, что меня достал такой стиль минуты 4 назад
Alexander
приношу извинения если я общался в том же стиле
Alexander
на всякий случай
Cheese
нет, от тебя стиля такого я не заметил. это я слишком злой
Cheese
в каком стиле следует указывать на логические ошибки в приличном обществе?
Aleksei (astynax)
> ограничение может быть если и только если можно выразить левое через правое А если в правом только часть левого используется? Как всё левое восстановить?
Alexander
например?
Alexander
вообще это значит, что-то менять надо
Alexander
/me временно ушёл