Alexander
и минус, они зачастую могут быть идиотскими и длинными
Aleksei (astynax)
Если для всех операторов, что только в base есть, запилить алиасы, это будет адище и сложнота
Зигохистоморфный
https://chris-martin.github.io/haskell-aligned/
Aleksei (astynax)
applicativeApplyButDropLeft = (<*) applicativeApplyButDropRight = (*>) functorMapButIgnoreRight = (<$) functorMap (applicativeApplyButDropLeft f) ...
Aleksei (astynax)
буэ
Leonid 🦇
leftApply, rightApply, constFmap
Andrei
ну, имена, конечно, придётся продумать
Leonid 🦇
лисповщина какая-то
Зигохистоморфный
у пурсы так
Leonid 🦇
у пурсы прост нужны имена для читабельного ЖС
Aleksei (astynax)
leftApply, rightApply, constFmap
ниочень, будет ассоциироваться с Either и бифунктором :)
Зигохистоморфный
https://github.com/purescript/purescript-prelude/blob/master/src/Control/Apply.purs#L50
Leonid 🦇
/me вообще не видит ничего плохого в операторах как алиасах для именованых функций
Leonid 🦇
вот, эти ребята уже всё придумали
Aleksei (astynax)
В два раза больше сущностей, которые нужно помнить. Это зло
Andrei
не нужно же, ну
Alexander
на самом деле для всякого поинтфри полезно
Leonid 🦇
/me произнёс булшит про "Человек использует только 10% мозга"
Aleksei (astynax)
Для поинтфри есть сечения
Vasiliy
ну это тогда давайте моноид переименуем в (S, <>, e)
Зигохистоморфный
ну это тогда давайте моноид переименуем в (S, <>, e)
ахах моноидальная алгебра своей персоной
Andrei
непонятно, что за leftApply? "show definition" → увидел leftApply = (<*) → успокоился
Aleksei (astynax)
Я не хочу делать show definition
Leonid 🦇
для начала сделайте мне IDE для хаскеля! (из моего емакса)
Andrei
Я не хочу делать show definition
почему, не работает?
Leonid 🦇
@hotkosc маловато
kosc
company для haskell ещё накрути.
kosc
undo-tree, sr-speedbar
Aleksei (astynax)
В своём коде я буду делать <*, потом загляну в чужой проект, а там leftApp везде и вообще "у нас так пишут". И так вкусовщины с отсупами хватает, так тут ещё и появится вкусовщина операторовая
Leonid 🦇
@hotkosc проблема не на стороне емакса, проблема принудить тулзы всякие цеплять либы и доки
Leonid 🦇
очень хрупко
kosc
Мммм, org-mode ещё, кстати.
Leonid 🦇
вот в nix ghcWithHoogle чаще сломан чем нет
kosc
Но тулзами и доками хз, ибо я не так давно емаксом пользуюсь.
kosc
Чуть дольше, чем всерьёз пытаюсь хаскель учить.
Leonid 🦇
а haddoc в .hi не хранится случаем?
Alexander
нет
Aleksei (astynax)
хз, у меня единственное отличие от hindent default — длина строки в 120 символов
А у нас свой стайлгайд. А где-то вобще пишут do { foo ; bar ; baz }
Aleksei (astynax)
Того и гляди, кто-то предложит отказаться от do нотации и всегда её рассахаривать
Andrei
А у нас свой стайлгайд. А где-то вобще пишут do { foo ; bar ; baz }
Лично моё единственное требование к стилю кода — это обязательная проверка его роботом (там, где это возможно). Единственное пожелание — минимальное количество отличий от широко принятого стиля. UPD: кривая формулировка
Aleksei (astynax)
Нет робота
Aleksei (astynax)
Был бы - пользовали бы
Andrei
меняйте стиль
Aleksei (astynax)
Опять радикализм
Aleksei (astynax)
Нету проверялки стиля ни для какого стиля, поэтому приходится делать style review вместе с code review
Andrei
не ну это же вам писать комменты в пулл-реквесте «отступы поправь», не мне
Alexander
у меня единственное требование, это чтобы в диффе было 100% относящегося к исправлению и 0 к стилю
Alexander
а потом как сишники, которые astyle 2 раза прогонаяют
Alexander
чтобы сделать себе удобно, а потом назад, как робот просит
Aleksei (astynax)
не ну это же вам писать комменты в пулл-реквесте «отступы поправь», не мне
У нас упоротый стиль с фиксированным размером оступа и именно отступ проверяется автоматически. И длина строки
Alexander
а учитывая что роботы обычно тупые, это приводит к стилевому идеализму
Евгений
В своём коде я буду делать <*, потом загляну в чужой проект, а там leftApp везде и вообще "у нас так пишут". И так вкусовщины с отсупами хватает, так тут ещё и появится вкусовщина операторовая
Мне кажется, что имеет смысл усложнить хаддок и запилить в него возможность указывать "имя оператора" в типичном camel case'е. Потом запилить это в комплитер можно + искать просто, но язык захламлять не будет
Andrei
меня устроит
Aleksei (astynax)
Вот показывать "имя" - хорошая идея, да
Aleksei (astynax)
[ "bind" :: m a -> (a -> m b) -> m b ] ... >>= ...
Aleksei (astynax)
(это у меня такой гипотетический popup в редакторе)
Oleg
Товарищи, а есть какая-то либа с функторами\монадами\комонадами генерализованными приблизительно до уровня gmap:: ArrowChoice a => a b c -> a (f b) (f c) ?
Oleg
только такое в линзах видел http://hackage.haskell.org/package/lens-4.15.4/docs/Control-Lens-Indexed.html#v:distrib
да, там ещё и ProfunctorFunctor есть, но только это класс для профункторов, а не функторов
Oleg
мне бы для * -> *
A64m
был https://github.com/ekmett/hask но он сгнил
Евгений
Хм, а кто-нибудь пробовал юзать haskell-ide-engine?
A64m
я
Leonid 🦇
с логотипом?
A64m
без. с логотипом он неюзабельный
Зигохистоморфный
и я
Зигохистоморфный
что за логотип?
A64m
давайте не будем о логотипе
Зигохистоморфный
так я и не знаю о чем вы
Cheese
это как-то связано со Снойманом?
A64m
надеюсь, что нет
Евгений
Надо бы подписаться на haskell cafe
A64m
не надо
Евгений
А как иначе быть в курсе обсуждаемых ITT срачей? Надоедает гуглить
A64m
они все на реддите
A64m
это еще более бесполезная и дегенеративная помойка чем кафе даже
A64m
в смысле, не срачи все, они много где бывают, но с реддита не выйти на них невозможно просто
Евгений
У реддита интерфейс не сильно ушёл от форумов и веб-интерфейсов для рассылок, как им пользуются вообще?