Cheese
а есть топ либ по лямбдочкам?
http://hackage.haskell.org/packages/search?terms= и кликнуть на Rating
A64m
вот что бывает, когда библиотека период модности-молодежности не на гитхабе проходит
Влод
да она бы и не была модной. она же тип проблемы решает, а не хайпит на машин лёрнинге/консольке в браузере
Cheese
кому лень кликать 1. lens 4824 3.0 2. aeson 13200 2.75 3. base 480 2.75 4. brick 456 2.75 5. bytestring 1329 2.75 6. containers 1594 2.75 7. doctest 990 2.75 8. ghc-mod 1314 2.75 9. hspec 3721 2.75 10. JuicyPixels 3375 2.75
A64m
почему у base такой высокий рейтинг?
Влод
несмотря на то что рейтинги ввели недавно, из всех парсеков топовый оригинальный парсек
Cheese
накликали
Влод
почему у base такой высокий рейтинг?
да точно нужно набежать и заминусовать
A64m
у lens, конечно, заслуженное первое место. Есть ли хоть одна еще библиотека на хаскеле, за которую было бы не очень стыдно?
Ignat
mtl?
A64m
толсто
Влод
не стыдно может быть и за очень мелкую либу
Влод
мне диаграмки нравились
Ignat
толсто
ну я не очень знаю, что у хачкелистов принято хейтить и за что
Влод
хотя для практичных задач всегда как-то сложно становилось
andrei
extensible-effects
A64m
(если серьезно, на меня еще произвели более-менее положительное впечатление quickcheck и parsec в допотопные времена, но только концептуально, не по качеству исполнения и, позднее, vector, но там блеск и нищета хаскеля всегда рядом, адовые сишные макросы, например)
A64m
мне диаграмки нравились
а, вот да, diagrams - это да, согласен, положительное впечатление на меня произвела
A64m
ну я не очень знаю, что у хачкелистов принято хейтить и за что
mtl самая ненавистная хаскельная библиотека всех времен (я не из числа хейтеров, правда)
Ignat
и за что хейтят?
Евгений
За коммутативность, наверное?
Aliester
MTL Acronym for Machine Translation. In regard to literature translated into other languages using programs that attempt to make it readable, but pale in comparison to an actual human translator.
Евгений
mtl это monad transforfer library
Alexander
меня бесит использование mtl частенько
Alexander
когда mtl используют как получить MonadReader,Writer,State для трансформеров нахаляву
Alexander
а потом ругаются на фандепы и жизнь
Alexander
и создают layers monad-classy и прочее
Andrew
/test
Кабачок
Кабачок
(Извините)
Влод
эти стикеры больше зайдут в джс чатиках. тип что-то непонятноумное и аниме. хотя постоянно есть надежда что оче сложная отсылка и где-то в тайтле можно раскрыть мысль
Кабачок
Вряд ли, там только асм был.
Влод
погоди
Влод
можешь в лс кинуть?
A64m
ну Йесод-то там должен был быть
Влод
Alister
melvin
как отфильтровать массив по четным/нечетным индексам?
Denis
а можно как-нибудь объяснить ghc что для примененной тайп-фемили, возращающей тип с закрытым кайндом, у меня есть инстанс SingI?
Алексей
ifilter?
Алексей
По моему нет. GHC же не может достать нужный словарь из ниоткуда
melvin
ifilter?
нет такого мб map fst/snd?
Alexander
@melancholiak в Vector
Denis
По моему нет. GHC же не может достать нужный словарь из ниоткуда
ну как же из ниоткуда, у меня для всех типов этого кайнда есть словарики потенциально
Alexander
а так map snd . (filter fst) . zip (cycle [True,False])
Denis
может какая-нибудь акробатика с constraints и Forall поможет?
Alexander
очень большая акробатика, сходу не вижу
Denis
а какие задачи нормально с помощью Forall решаются? Есть туториал нормальный?
Denis
у меня вздрыж от сорцов
Alexander
@catamorphism может с доп классом, функцией дотащить?
Denis
сейчас в метро листал
Denis
там тащить-неперетащить
Denis
эта ТФ зовет еще пятьдесят
Anonymous
f [] = [] f [a] = [] f (a1:a2:other) = a2 : f other
Denis
я вижу одно решение потенциально, но я офигею его писать
Denis
написать функции для значений-синглтонов, полностью повторяющие TF
Denis
но это ежика можно родить в моем случае
Denis
блин (
Mi Shа
Привет! Сорри за глупый вопрос, но почему я не могу объявить в одном файле два вот таких вот рекорда: data Node a b = Node { id :: a, body :: b, edges :: [Edge] } data Edge a b = Edge { id :: a, body :: b }
Влод
да вроде можно. там всякие экстеншены покрутить
Alexander
потому что поля создают геттеры
Alexander
и у тебя 2 геттера с одним именем и разной сигнатурой
Mi Shа
Multiple declarations of `id'
Alexander
в последнем ghc с расширениями можно
Alexander
XDuplicateRecordFields или что-то такое
Mi Shа
Просто непонятно, почему он так работает
Mi Shа
Это связанно с реализацией системы типов?
A64m
"рекорды" в хаскеле это просто сахар для объявления функций.
Влод
Просто непонятно, почему он так работает
он тупо генерит функцию id :: Node a b -> a и id :: Edge a b -> a
Mi Shа
Получается, Edge and Node просто тайп-синонимы?
Mi Shа
он тупо генерит функцию id :: Node a b -> a и id :: Edge a b -> a
Влод
нет
Влод
он пытается сгенерить и говорит что имя id уже занято
Mi Shа
Понял, нет параметрической перегрузки у функций
Влод
ну как бы тайп-классы наверное оно и есть
Mi Shа
Нужно пройти всю церемонию, чтобы прийти к перегрузке
Denis
Ад-хок полиморфизм разумеется есть, но для объявления полей рекордов этого не происходит. Чтобы происходило - выше предлагали {-# LANGUAGE DuplicateRecordFields #-}
Mi Shа
Только потом понял, спасибо