Крылатый
Roman
А что, C++ уже не хватает?
void *
Max
Дежурный вопрос
Max
Всем хватает Си
Евгений
Руста
Max
Предлагю банить всех, кто не осилил указатели.
Deleted Account
Евгений
Предлагаю банить всех кроме элемира
Max
Поддерживаю
Алдар
ls = ["Tema", "Pegas", "Plushka"]
mapM_ putStrLn $ map ("Hello, " ++) ls
Зигохистоморфный
for_ лучше)
void *
Зигохистоморфный
а вообще - моноид))
foldMap (putStrLn . ("Hello, " ++)) ["Tema", "Pegas", "Plushka"]
Alexey
Нубский вопрос. Разбираюсь с https://github.com/haskell-servant/example-servant-minimal и хочу заиспользовать Map. Делаю import Data.Map и получаю
Failed to load interface for ‘Data.Map’
It is a member of the hidden package ‘containers-0.5.7.1’.
Use -v to see a list of the files searched for.Похоже нужно чтото подкрутить в stack. Подскажите что :)
Через ghci импортит нормально
Vasiliy
в .cabal в build-depends допиши containers
Roman
Alexey
Vasiliy
видимо, генерится
Зигохистоморфный
какая ирония) послать да еще и ссылочно)
Vasiliy
ну, туда, из чего он генерится, допиши containers
Vasiliy
походу, в package.yaml
Alexey
дописал в package.yaml. не помогло. как перегенерить cabal после исправления stack.yaml?
Vasiliy
попробуй просто удалить .cabal
Deleted Account
какая ирония)
чтобы пользоватсья языком его надо конфигурить хз где и как
Vasiliy
хотя, по идее, он должен увидеть изменения...
Alexey
заработало. спасибо
Alexey
получается для того чтобы доступиться к пакету я должен явно на него зависеть а не транзитивно?
Alexey
Vasiliy
да
Vasiliy
чтоб не морочиться с подтягиванием всяких containers, transformers и прочих bytestring, можно один раз зависнуть от https://github.com/nikita-volkov/rerebase
Зигохистоморфный
есть еще https://github.com/sdiehl/protolude
Alexander
зачем люди делают кастомные прелюды, они ж все хм.. плохие
Зигохистоморфный
но ведь Дил норм чувак)
Arseniy
https://github.com/serokell/universum
Рекомендую наш ;)
Зигохистоморфный
Deleted Account
Arseniy
Стараемся следить 😊
Зигохистоморфный
Prelude это то, что у тебя неявно подключается (но можно сделать явно, через прагму)
Alexander
т.е. я понимаю причины зачем нужно, но оно накладывает хорошее количество доп задач
Deleted Account
спасибо я пашол
Alexander
я пока с двумя проектами минимум сталкивался где больше проблем, чем пользы
Roman
Тьфу нке то
Alexander
ну разве что в одном поверх located-base и исключения поприятнее
Arseniy
@lightgreen вперёд!
Oleg
Deleted Account
Dmitrii
whenJust чем maybe не угодил?
whenJust является сокращение для maybe (pure ()). Просто иногда удобней использовать в коде с do-блоками типа whenJust mFilePath $ \path -> do ...
Roman
спасибо я пашол
https://wiki.haskell.org/Prelude
Ну и ещё он интерактивный, и ты можешь писать прямо в него в его консоли, а он жуёт и интерактивно выдаёт результаты твоих экзерсисов
Deleted Account
Artyom
что вперёд?
@qnikst а что за доп задачи?
Vasiliy
а ещё whenJust = flip traverse_
Dmitrii
а in-house ещё хуже, если не следить очень хорошо за ними
Как сказал @jagajaga, стараемся следить :) Очень надеемся, что большей людей за пределами Serokell начнут использовать, тогда можно будет вылавливать всякое дерьмо. В основном для удобства, уменьшения импортов, и прочего
Artyom
(ну кроме “документацию написать”, наверно)
Alexander
@lightgreen поддержка прелюды в правильном состоянии:
1. не держать неиспользуемого
2. не обновлять своевременно
3. сделить за кодобазой, чтобы общие паттерны переносить, сделать чтобы использовалось из своей прелюды
—-
маловероятно что много кто будет ей пользоваться, даже у foundation проблемы с этим, хотя они её активно пушат
Alexander
причины мне понятны: уменьшение импортов, улучшение практик при написании кода, повышение стабильности
Alexander
т.е., например, если я приду в серокел то мне придётся ещё и вашей прелюде учиться
Alexander
как бы не большая нагрузка, но дополнительная, ещё и всех ревьюверов ляжет доп нагрузка
Dmitrii
а ещё whenJust = flip traverse_
Не знаю, как насчёт traverse_, но вот у for в применении к Maybe были space leak, есть посты Сноймана вместе с расследованием Романка Чепляки. Поэтому для точного избежания ликов + более фиксированный тип + более понятная семантика из названия удобно использовать whenJust. Не знаю, у нас всем нравится)))00)0)
Alexander
не то, чтобы я был против custom прелюд, но там не все так однозначно
Alexander
т.е. если где-то в проекте есть, пишу с ними, что уж
Dmitrii
т.е., например, если я приду в серокел то мне придётся ещё и вашей прелюде учиться
Это очевидно. Но выучить новую прелюду -- это часа 2-3 за всё время работы в команде. Все понимают, что на это надо время, и по этому поводу уже были большие обсуждения. Но 2-3 часа изучения могут сэкономить потом 10 часов работы. Вполне годный трейдофф. К тому же есть туториал, который помогает изучить + документация, которая поддерживаются в актуальном состоянии + как миниумум парочка человек активно следит за тем, чтобы он не превратился в болото
Dmitrii
Плюс ещё вот-вот технический писатель должен поправить README на предмет багов в грамматике и прочего описания
Vasiliy
Alexander
> как миниумум парочка человек активно следит за тем, чтобы он не превратился в болото
пункт один почему я не люблю кастомные прелюды :}
Dmitrii
Потому что надо следить или потому что может быть болото?)
Alexander
нужно следить чтобы не было болота
Alexander
на одной чаше весов болото, на другой developer time
Alexander
причем developer time может быть хороший, т.к. если что-то исправляется то это надо анонсировать и ответить на вопросы n человек если не очевидно
Alexander
btw Data.Bool.bool в prelude есть
Alexander
где мой event-log в Debug?! =)
Alexander
кстати приятная прелюда
Alexander
а не все есть
Зигохистоморфный
Alexander
выше ссылка