Size: a a a

2021 January 11

KV

Kirill Valyavin in Haskell
И профункторов когда-то не было
источник

YS

Yan Shkurinskiy in Haskell
это как если меня спросили "а почему у тебя не мак?"
источник

JS

Jerzy Syrowiecki in Haskell
аппликативов тоже когда-то не было
источник

YS

Yan Shkurinskiy in Haskell
я бы спросил - "а почему должен быть мак?"
источник

YS

Yan Shkurinskiy in Haskell
ну короче хз)
источник

JS

Jerzy Syrowiecki in Haskell
а кому нужен XHTML?
источник

JS

Jerzy Syrowiecki in Haskell
корлиб включает xhtml, если кто не знал
источник

ЖК

Жук Короед in Haskell
Kirill Valyavin
И профункторов когда-то не было
Так профункторов там и сейчас нет 🤔
источник

KV

Kirill Valyavin in Haskell
Жук Короед
Так профункторов там и сейчас нет 🤔
Ну дык
источник

Oℕ

Oleg ℕizhnik in Haskell
Жук Короед
Почему в стандартной библиотеке нет решеток и полурешеток?
Моё личное понимание, что в мире алгебраических структур есть вещи, которые хорошо ложатся на беззавтипное программирование, а есть те, что не очень.
Вещь, которая немного мешает хорошо лечь - это некоторые законы, которые слишком легко не соблюсти.
Например, ассоциативность мы не можем явно потребовать от имплементации, но легко можем структурно её достигнуть.
Свободные моноиды\полугруппы\монады\аппликативы легко получаются, если структуру "нормализовать" в какую-то сторону вдоль равенства в законе.
Так мы получаем списки, и монады, с длинным хвостом "справа".
С коммутативностью так уже не получается, поэтому хотя коммутативные структуры хотя и встречаются в виде Map\Set, но абтракции никто для них не делал, потому что рассуждать в рамках коммутативности сложновато, и она всегда получается зависит от сильных свойств ещё каких-то инстансов. Например, гарантии, что равные вещи неразличимы в инстансе Eq внутри Ord.
Примерно так же получается и с идемпотентностью в решётке, абстракция то сильная, но хорошо использовать её силу, следить за корректностью и конструировать автоматически в рамках языка без завтипов (а то и квошент типов) сложно
источник

NI

Nick Ivanych in Haskell
> С коммутативностью так уже не получается
Не очень сложно сделать как свободную абелеву группу, так и свободный коммутативный моноид.
И рассматривать алгебры для получившейся монады.
Это как например.
Только хаскель не проверит соответствующие равенства (про алгебры), конечно.
источник

KV

Kirill Valyavin in Haskell
Nick Ivanych
> С коммутативностью так уже не получается
Не очень сложно сделать как свободную абелеву группу, так и свободный коммутативный моноид.
И рассматривать алгебры для получившейся монады.
Это как например.
Только хаскель не проверит соответствующие равенства (про алгебры), конечно.
Без квошиент типов это не будет труъ свободная алгебра, потому что можно построить левые термы. Со свободными моноидами в виде списков низя (кроме бесконечных и боттомов)
источник

Oℕ

Oleg ℕizhnik in Haskell
Nick Ivanych
> С коммутативностью так уже не получается
Не очень сложно сделать как свободную абелеву группу, так и свободный коммутативный моноид.
И рассматривать алгебры для получившейся монады.
Это как например.
Только хаскель не проверит соответствующие равенства (про алгебры), конечно.
Ну их же нужно делать с условием наличия хотя бы Eq, дальше начинается зуд практической неприменимости нужно требовать хотя бы Ord , в роли даже свободного коммутативного моноида получаем допустим MultiSet, с группами получаем какую-то страшную полуприменимую структуру напоминающую чем-то CRDT извраты, притом очень очень много будет зависеть от того, как этот Ord будет реализован
источник

NI

Nick Ivanych in Haskell
Oleg ℕizhnik
Ну их же нужно делать с условием наличия хотя бы Eq, дальше начинается зуд практической неприменимости нужно требовать хотя бы Ord , в роли даже свободного коммутативного моноида получаем допустим MultiSet, с группами получаем какую-то страшную полуприменимую структуру напоминающую чем-то CRDT извраты, притом очень очень много будет зависеть от того, как этот Ord будет реализован
Ну да.
источник

NI

Nick Ivanych in Haskell
Kirill Valyavin
Без квошиент типов это не будет труъ свободная алгебра, потому что можно построить левые термы. Со свободными моноидами в виде списков низя (кроме бесконечных и боттомов)
Многие структуры являются алгебрами для соответствующей монады.
Эти фактор-структуры появляются неявно.
Однако, и правда, слишком вычислительно извратно будет выглядеть.
Это будет unbiased-вид бинарных операций, зависящий от реализации соответствующих свободных структур...
источник

Oℕ

Oleg ℕizhnik in Haskell
Собственно, если попробовать сконструировать свободную решётку с только нижним баундом, мы получим просто Set
источник

KV

Kirill Valyavin in Haskell
Ну так вот это небось те самые црдт-подобные извраты
источник

Oℕ

Oleg ℕizhnik in Haskell
Так что можно считать вот используются
источник

ЖК

Жук Короед in Haskell
Oleg ℕizhnik
Так что можно считать вот используются
То есть если мне нужно сконструировать какую-то структуру данных, и мне известно лишь то, что она должна быть решеткой с нижним баундом, то я могу использовать для этого Set каким-либо образом?
Или как иначе этот факт можно использовать?
источник

MK

Maxim Koltsov in Haskell
*bonk*
go to academic jail
источник