A64m
вообще обсуждаемый класс для таких значений это Monoid
Сергей
'\NUL' не пойдёт за mempty
A64m
если оно ничего не значит, не несет смысла, то и тайпкласса быть не может
A64m
(но тайпкласс для пустых значений просто ради перегрузки есть в lens как я уже говорил, AsEmpty называется)
A64m
тайпклассом-то может, но довольно неинтересным
A64m
наверное и есть Pointed в каком-то пакете
Cheese
A64m
зависит от того какую операцию объявим
A64m
first, к примеру можно для чара объявить почему нет?
Oleg
Да, любое непустое вполне моноид
Cheese
A64m
(но тайпкласс для пустых значений просто ради перегрузки есть в lens как я уже говорил, AsEmpty называется)
Cheese
Cheese
Monoid не подходит, потому что я не использую никакую операцию, хочу только отличать заполненное значение от пустого
Cheese
A64m
хочу использовать готовое, но только так чтоб готовое не использовать
Leonid 🦇
Cheese
Операция объединения такая что mappend Empty a = a; mapped a _ = a
во-первых, это First, во-вторых, мне негде такой mappend применить, в-третьих, у меня есть совсем другой merge, работающий одинаково для всех типов:
-- priority of deletion
mergeAtoms a1 a2
| a1 == empty || a2 == empty = empty
| a1 == a2 = a1
| otherwise = empty
Kirill
а зачем тут 3 ветки когда хватит 2?
Cheese
Кабачок
Есть какой-нибудь значок для Data.Function.on :: (b -> b -> c) -> (a -> b) -> a -> a -> c?
кана
а так нужен?
кана
(==) `on` f
Кабачок
Не, мне для кока
Anonymous
https://t.me/itliba
Leonid 🦇
Брагилевского на вас нет
Vitaly
Воры. Все воры.
Aliester
Весь мир -квартира , форточкой, а мы в ней воры.
Darwin
Мало того что воры, там на весь канал всего одна книга по хаскелю
Зигохистоморфный
Воры. Все воры.
а вот оно че! а я то покупаю книги, даже если они мне не особо подходят потом
кана
вор, из-за тебя кому-то книги может не хватить, кому она нужна, своровал знания
Зигохистоморфный
A64m
один из авторов deriving via не успел пропозал запостить, а уже обкашливает вопросики:
RS> I have one major feature planned: -XDerivingVia. I haven't made a patch yet, since the idea itself is still technically going through the proposal process at [1]. But the feedback seems pretty positive, so I think I'll submit it to the committee next week for final consideration.
RS> There is an implementation that's 99% already at [2], so there shouldn't be much of a delay in getting it to Phabricator once the committee gives the go-ahead.
BG> Right, I think this can be made to work assuming there is no objection from the devops committee.
A64m
(автор или-паттернов запостил пропозал на 14 месяцев раньше, решение все еще не принято)
A64m
(автор мутабельных объектов запостил пропозал на 18 месяцев раньше, решение все еще не принято)
Alexander
Так много всяких дерайвов. Может, кто-то статейку написал, что каждый из них делает, почему нужен, и какие практики поддерживает?
A64m
в пейпере про этот дерайв есть обзор остиальных дерайвов и почему они теперь не нужны
Alexander
Окей, тоже источник
Kirill
Aliester
Кабачок
Рабы или лошади
Ruslan
Alexander
Хаскель - лучший императивный язык? И оно туда движется все, сделать Хаскель как Си? И назвать его Сискель, ага
Ruslan
A64m
чтоб хаскелю быть нормальным императивным языком, надо помимо этого еще сносный монадический синтаксис (вроде идрисной !-нотации) анлифтнутые типы нормальные, примитивы меньше слова, возможно линейные типы, может еще что-то, навскидку не вспомнил
Vladislav
Вот уж у каждого императивного языка линейные типы
A64m
НОРМАЛЬНЫМ
A64m
каким-то там императивным языком он и сейчас является
Oleg
! синтаксис, конечно, опасная штука в языке, где нельзя доказать, что твоя монада коммутативна
A64m
он для применения с некоммутативными монадами в основном
Alexander
A64m
так что доказывать не надо
Ilya
Oleg
proof by ignorance
A64m
ну или вариант того что в DDC
Oleg
в скалку, кстати, тоже bang завезли
Кабачок
Тоже для монад?
Oleg
Тоже для монад?
не совсем.
Но если я поведаю тут все начнут фукать, так что лучше в скалачате спроси
Cheese
Кабачок
@odomontois меня там нет и не будет, да вообще не знаю где это, кинь в лс
Alexander
а from the abyss хорошее аниме.. ой к чему это я
Anonymous
/
Anonymous
Igor
Alexander
а ну да
Igor
Анимэ с детолюбными подтекстами :)
A64m
A64m
(не шутка)
A64m
https://github.com/Atry/ghc-proposals/blob/master/proposals/adaptive-do-notation.rst
Alexander
А зачем нужен пропозал, если можно сделать свою прелюдию и настроить резолвитнг do-нотации в >>= вместо Control.Monad.>>=?
A64m
не у всех пропозалов есть смысл
Alexander
логично
Ilya
почему [0,0.. 1] == бесконечный список нулей, но [0,0.. -1] == [] ?
Ilya
какая-то ассиметрия