A64m
вообще обсуждаемый класс для таких значений это Monoid
Сергей
'\NUL' не пойдёт за mempty
кана
вообще обсуждаемый класс для таких значений это Monoid
нет, empty в моноиде - нейтральное значение ДЛЯ какой-то КОНКРЕТНОЙ операции, сам по себе mempty ничего не значит а ему нужно обратное - какое-то пустое значение, которое не несет смысла
A64m
если оно ничего не значит, не несет смысла, то и тайпкласса быть не может
A64m
(но тайпкласс для пустых значений просто ради перегрузки есть в lens как я уже говорил, AsEmpty называется)
Oleg
если оно ничего не значит, не несет смысла, то и тайпкласса быть не может
Что не характерно, коли уж Monoid может быть тайпклассом, то почему бы Pointed не быть тайпклассом?
A64m
тайпклассом-то может, но довольно неинтересным
A64m
наверное и есть Pointed в каком-то пакете
A64m
зависит от того какую операцию объявим
A64m
first, к примеру можно для чара объявить почему нет?
Oleg
Да, любое непустое вполне моноид
A64m
(но тайпкласс для пустых значений просто ради перегрузки есть в lens как я уже говорил, AsEmpty называется)
Cheese
Monoid не подходит, потому что я не использую никакую операцию, хочу только отличать заполненное значение от пустого
Cheese
(но тайпкласс для пустых значений просто ради перегрузки есть в lens как я уже говорил, AsEmpty называется)
хм. замечательно. следующая проблема — как не тащить зависимость от линз в библиотеку
A64m
хочу использовать готовое, но только так чтоб готовое не использовать
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
а зачем тут 3 ветки когда хватит 2?
просто третья вообще не может быть, если всё идёт хорошо
Кабачок
Есть какой-нибудь значок для 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
я отдал за это свои деньги) даже иногда хожу живые книги покупаю
Из мёртвого дерева небось? Какие они тогда живые?
Кабачок
Рабы или лошади
Alex
Рабы или лошади
Вот ваша сдача, 17109 икринка?
A64m
Простите, я тут мимоходом, а вот это про что речь? О_о
https://github.com/simonmar/ghc-proposals/blob/mutable-fields/proposals/0000-mutable-fields.rst
Alexander
Хаскель - лучший императивный язык? И оно туда движется все, сделать Хаскель как Си? И назвать его Сискель, ага
A64m
чтоб хаскелю быть нормальным императивным языком, надо помимо этого еще сносный монадический синтаксис (вроде идрисной !-нотации) анлифтнутые типы нормальные, примитивы меньше слова, возможно линейные типы, может еще что-то, навскидку не вспомнил
Vladislav
Вот уж у каждого императивного языка линейные типы
A64m
НОРМАЛЬНЫМ
A64m
каким-то там императивным языком он и сейчас является
Oleg
! синтаксис, конечно, опасная штука в языке, где нельзя доказать, что твоя монада коммутативна
A64m
он для применения с некоммутативными монадами в основном
A64m
так что доказывать не надо
Oleg
proof by ignorance
A64m
ну или вариант того что в DDC
Oleg
в скалку, кстати, тоже bang завезли
Кабачок
Тоже для монад?
A64m
Я мало что понял, но верю
чего там непонятного-то?
Oleg
Тоже для монад?
не совсем. Но если я поведаю тут все начнут фукать, так что лучше в скалачате спроси
Cheese
Хаскель - лучший императивный язык? И оно туда движется все, сделать Хаскель как Си? И назвать его Сискель, ага
Хаскель уже давно лучший императивный. Это всего лишь ещё одна оптимизация.
Кабачок
@odomontois меня там нет и не будет, да вообще не знаю где это, кинь в лс
Alexander
а from the abyss хорошее аниме.. ой к чему это я
Anonymous
/
Anonymous
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
какая-то ассиметрия