Size: a a a

2020 May 22

АГ

Александр Гранин... in fprog_spb
Это бы заняло часов 5
источник

YS

Yan Shkurinskiy in fprog_spb
Ну можно думаю в 2 попробовать)
источник

АГ

Александр Гранин... in fprog_spb
Можно. Но это не будет отличаться от туториалов. Тот же самый эффект получится
источник

АХ

Алексей Худяков... in fprog_spb
Jerzy Syrowiecki
можешь раскрыть мысль? что для каждой из этих ситуаций лучше и почему?
data Foo = Foo { foo :: X, bar :: Y }
type FooVar = MVar Foo

Любые обновления Foo атомарны — мы либо обновляем Foo целиком, либо оставляем как есть, все операции линеаризуются, и выполняются последовательно. Если конкурентных обновлениё много можно получить lock contention

data Foo = Foo { foo :: MVar X, bar :: MVar Y}

Можно обновлять foo и bar конкурентно, но если надо поменять и тот, и другой, то начинаются проблемы. Можно получить дедлок, если две нити берут локи в неправильном порядке:

- Нить 1: takeMVar foo ... takeMVar bar
- Нить 1: takeMVar bar ... takeMVar foo

Кончено, если заменить MVar, на TVar, то проблема композионности локов пропадёт. STM!
источник

YS

Yan Shkurinskiy in fprog_spb
Просто у людей некоторых нет понимания
источник

YS

Yan Shkurinskiy in fprog_spb
Мне кажется - это важно
источник

АГ

Александр Гранин... in fprog_spb
Я бы послушал тоже
источник

YS

Yan Shkurinskiy in fprog_spb
Мб я бы мог на примитивном крестьянском уровне чет рассказать с примерами, но именно для незнакомых с монадами
источник

АГ

Александр Гранин... in fprog_spb
Расскажи
источник

KB

Konstantin Budikhin in fprog_spb
Да, а то многие думают, что если монады, то это обязательно нечистые функции
источник

JS

Jerzy Syrowiecki in fprog_spb
некоторые вообще яваскрипт везде видят
источник

YS

Yan Shkurinskiy in fprog_spb
Как говорил Николай - "У вас там монады, грязь и императивщина" (С) х))
источник

YS

Yan Shkurinskiy in fprog_spb
(ну или как-то так)
источник

АГ

Александр Гранин... in fprog_spb
Императивность Хаскеля настолько спорный вопрос, что его будут обсуждать вечно
источник

YS

Yan Shkurinskiy in fprog_spb
Просто даже, например, уверен, что кложуристы не знают, что фунция (+1) - это тоже монадическое значение)
источник

YS

Yan Shkurinskiy in fprog_spb
Хотя вообще не грязная, и не императивная
источник

АГ

Александр Гранин... in fprog_spb
Чистота Хаскеля - второй спорный вопрос
источник

АГ

Александр Гранин... in fprog_spb
Монадическая сущность Хаскеля с ним тоже навсегда. Я крайне сомневаюсь, что какая-либо другая техника заменит монады в Хаскеле
источник

АГ

Александр Гранин... in fprog_spb
Исключая IO, мы используем монады не потому, что нам приходится, а потому, что открываются какие-то невероятные бездны возможностей почти забесплатно
источник

АГ

Александр Гранин... in fprog_spb
Изобретение монад в программировании - это, вероято, было единственное крупное достижение в последние годы
источник