Alexander
пасиб
Anatolii
у меня что-то мног получилось функций такого вида:
MonadReader env => Maybe a
Anatolii
я наверное не туда свернул
Anatolii
надо передать на что-то типа ReaderT env MaybeT a ?
Anatolii
не могу понятькак лучсше
Alexander
Да. Ведь строчка MonadReader env => уже говорит, что свернул не туда.
Anatolii
MonadPlus нашел еще
Alexander
Ну ладно, ладно, это я туплю в час ночи
Anatolii
во
Anatolii
MonadPlus то что нужно наверное
Alexander
A64m
вот и я этого ожидал
Alexander
И не надоело вам топить за фри-монады, а.
Leonid 🦇
MonadProprietary
IC
Leonid 🦇
GNU+Monad
A64m
I'd just like to interject for a moment. What you're referring to as FreeMonad, is in fact, GNU/FreeMonad, or as I've recently taken to calling it, GNU plus FreeMonad.
Alexander
Что делать, если коллеги из соседних языков рассказывают другим своим коллегам о монадах, но делают это неправильно, и, возможно, сами не до конца понимают тему?
Арсений
А как надо рассказывать? :)
Alexander
Надо рассказывать правильно, очевидно же!
Alexander
Для начала не называть монады чем-то еще. И не скрывать стыдливо, что они пришли из Haskell.
Арсений
Аааа, ну тогда я пошел писать статью на медиум о монадах, до меня ведь правильно и нормально никто не обьяснил. Только что пришла в голову мысль, что они чем-то похожи на шаверму
Alexander
По моим наблюдениям, на плюсовых конференциях в последние годы язык Haskell упоминается чаще других.
Alexander
Nikolay
Alexander
или ты ешь шаверму, или кто-то есть тебя в шаверме
Alexander
если завернуть, что-то в лаваш, а потом продолжить готовить шаверму, то это тоже самое, что начать готовить шаверму с этим чем-то
Alexander
если приготовить шаверму и завернуть её в лаваш, то получится та же шаверма
Alexander
третий закон сами переводите
Арсений
Если в шаверму налить майонеза, а потом положить кошк^W мясо, это тоже самое, что положить сначало мясо, а потом налить майонеза. Вроде так. Но лучше класть рыбу
Арсений
Кстати, для тех, кто говорит, что крипта юзлесс: (можно сделать приватный блокчейн на хаскелле с шавермадами):
Арсений
ШаурмаPass (ШП)
Пользователь (житель Москвы), может купить в блокчейне ШП пропуск на неограниченную покупку шаурмы в течении определенного интервала времени (день, неделя, etc.).
Партнеры проекта (ларьки с шаурмой) заранее договариваются на цену пропуска, длительность пропуска и cooldown (время, через которое можно снова купить шаурму).
Чтобы купить шаурму, пользователь подтверждает свою личность в ларьке (ключ, фейсконтроль) и получает шаурму. Факт покупки шаурмы на пропуск записывается в блокчейн.
После истечении действия пропуска деньги за него распределяются между ларьками пропорционально их продажам шаурмы на этот пропуск.
С помощью блокчейна достигается доверие между ларьками и доверие пользователей, а также прозрачность транзакций (в хороших ларьках продаж будет вероятно больше, чем в плохих).
Что получает пользователь ШП:
- низкие цены на шаурму
- возможность обнаружить для себя ранее неизвестные ларьки
Что получают партнеры проекта:
- новых клиентов, не теряя старых
- увеличение кол-ва продаж
При успехе проекта в Санкт-Петербурге предлагается запустить аналогичный сервис ШавермаPass.
Арсений
Я ученик 9 класса, и мне, как студенту, не хватает денег, чтобы каждый день завтракать и обедать вне дома (школа далеко от дома), а также я боюсь отравиться. Этот проект помог бы мне сократить расходы и увидеть, какие заведения в близи от меня продают качественную шаурму, а какие нет.
Leonid 🦇
Шутка затянулась
Арсений
Черт, наверно слишком большой вайтпейпер, чтобы чатик засорять
Aliester
вайтпейпер?
Aliester
я чет здесь референсов не вижу
Vladimir
Так он ученик школы или студент? Я не понял.
Anonymous
Арсений
Не, это я недавно для екзонума делал, решил, что релевантно будет
andrei
пиздец, я в мемы заберу
Leonid 🦇
у нас не матерятся
Alexander
да, попрошу
Alexander
и так политоту уже пускаем
Alexander
иногда
Евгений
@qnikst выше
Alexander
fixed
IC
вот стоило только матюгнуться...
andrei
Alexander
это не белый билет
andrei
😢
Yura
мы тут все... немного фронтендеры
Dmitry
Dmitry
Leonid 🦇
Lazy это список кусков. Для IO это значит меньше аллокаций
Kirill
и для всякик конкатов тоже местами
Dmitry
Сценарий примитивный. Из БД текст прочитал (скажем, 1k), что-то склеил, в БД записал (или вывел куда-то). Если из БД (либы) пришел Strict, смысла дергаться нет, видимо. Если Lazy - так с Lazy и жить. Если отдать надо не в том, в чем пришло - лучше как можно дольше с Lazy быть? Если есть выбор в чем получать - лучше в Lazy? Есть какие-то эмпирические критерии?
IC
начал клеить - перешёл на lazy
Alexander
или получать кусками
IC
или сразу на билдер
Alexander
вот да, builder или Fold S.ByteString
Kirill
явовский :)
Alexander
и пусть получатель решает что ему с этими строками делать
Alexander
и насколько далеко взаимодействие с базой тащить
Kirill
отсюда вопрос к "пришёл Strict" в описании выше, клиенту видней обычно
Dmitry
т.е. выигрыш настолько явный, что, видя конкатенацию strict-text, хватаются за пистолет?
Dmitry
почему же он дефолтный? Исторически?
Alexander
что дефолтный?!
Alexander
конкатенация строгих байтострок O(n+m), ленивых O(1)
Dmitry
Как я понимаю, Data.Text == Data.Text.Strict? Нет?
Dmitry
In many cases, the overhead of chunked streaming makes the lazy Text type slower than its strict counterpart, but this is not always the case.
Dmitry
про O(n+m) дока не говорит ничего
Alexander
там есть некоторые оптимизации, которые могут спасти мир
Alexander
но это в Text, не в ByteString
Dmitry
Да, я сразу про Text спрашивал.
Dmitry
Я отвечал на высказывание, что Text плохо, а Text.Lazy хорошо
кана
Leonid 🦇
> > No.
> I know that saying "No." as an opening to expressing your disagreement is popular on the Linux kernel mailing lists and other macho newsgroups but here it seems a bit out of place.
Leonid 🦇
У нас macho чат?