
Denis
10.10.2018
12:09:57
да какая разница что будет умножением

alexknvl
10.10.2018
12:10:08
ок, есть []

Denis
10.10.2018
12:10:10
Compose/ Day convolution
тут тоже моноид)

Google

Yuriy
10.10.2018
12:11:00

Denis
10.10.2018
12:11:23
да
иногда и я прокалываюсь
@alexknvl просто какая разница в какой категории моноид?
FreeMonoid, FreeMonad, FreeApplicative, FreeAlternative, FreeFunctor, FreeProfunctor..
есть единица и есть умножение

alexknvl
10.10.2018
12:12:48
что если это RuleAlg?
какой для него Free?
что если это data FreeFoo a = One a | Add a a

Denis
10.10.2018
12:14:28
и? cata someAlgebra

alexknvl
10.10.2018
12:15:13
ок, тогда мы полностью согласны, кроме разпараметризации FRule
и это уже не Free как это обычно понимается

Denis
10.10.2018
12:16:53
и это уже не Free как это обычно понимается
я вот пытался показать что все что мы знаем, есть алгебры
ну тут пурса (да и возможно вариант алгебр выражать через тайп классы не ок, но это просто эксперимент)
https://gist.github.com/xgrommx/d6c5f685e4b12e8080caf501b378a52b

kana
10.10.2018
12:37:19
@graninas а что такое stml? в чем разница с stm? что буква l значит?

Google

Александр
10.10.2018
12:37:58
Да это просто мое именование. L - от language. По сути, косметическая разница

Iva
10.10.2018
12:39:01
Что такое STM?

Александр
10.10.2018
12:39:18
Тут, видимо, вышеуказанный тайп класс для STM можно еще вписать. Не уверен, полезно ли

Andrei
10.10.2018
12:39:32

Александр
10.10.2018
12:40:03
Что такое STM?
Клевая концепция для построения конкурентных моделей данных. На мой взгляд, один из лучших подходов к concurrency

Alexander
10.10.2018
12:40:27
как мне реализовать точку рандеву на STM?
и помогут ли мне фримонады

Александр
10.10.2018
12:41:07

Alexander
10.10.2018
12:41:31
когда 2 треда обмениваются сообщениями атомарно
т.е.exchange :: Box a a -> a -> M a

Александр
10.10.2018
12:42:06

Alexander
10.10.2018
12:42:07
тред когда вызывает то блокируется
другой тоже
после обмена у них выходят новые сообщения
и они или оба их получили, или оба не получили

Александр
10.10.2018
12:42:57
Mvar request response pattern
На STM тоже
Решит проблему?

Denis
10.10.2018
12:44:55

Alexander
10.10.2018
12:45:13
ytn

Google

Alexander
10.10.2018
12:45:22
оно принципиально не решается на STM
т.к. коммит не может пройти

Александр
10.10.2018
12:45:32
Можно протоколом. Один тред лочит другого через переменную, потом они обмениваются инфой

Alexander
10.10.2018
12:45:47
при проверке лога будет изменение той переменной, что ты читал
т.е. это кейс, который STM (в реализации без багов) покрыть не может

Александр
10.10.2018
12:46:45

Alexander
10.10.2018
12:47:05
не будет одна транзакция обмен не будет атомарным

kana
10.10.2018
12:47:14

Александр
10.10.2018
12:47:14
Я хотел бы про mvar req resp паттерн узнать. Решает или нет?

Alexander
10.10.2018
12:47:16
т.е. ты доп протокол только можешь делать
mvar должен

Александр
10.10.2018
12:47:38

Alexander
10.10.2018
12:47:39
вообще если интересно посмотри в одной из первых статей по STM это разбиралось

Александр
10.10.2018
12:48:08
mvar должен
Тогда и STM тоже, там есть TMVar, и это не обязана быть та же самая транзакция

Alexander
10.10.2018
12:48:16
нет

Александр
10.10.2018
12:48:29
Тогда надо уточнить задачу
Потому что как я вижу, MVar req resp и STM TMVar req resp работают одинаково
А в той в доке, вероятно, опять формалистский подход, где рассматриваетсч STM код с одной единственной транзакцией. А ведь можно делать раздельные

Alexander
10.10.2018
12:51:36
раздельные = нету атомарности

Александр
10.10.2018
12:51:58
Вот это утверждение, очевидно, не доказсно

Google

Александр
10.10.2018
12:52:10
Из разряда контр интуитивных

Alexander
10.10.2018
12:52:52
*а что подумал кролик никто не узнал

Александр
10.10.2018
12:53:14
Атомарности простым мьютексом можно добиться (при отсутствии эффектов, само собой)
Разве нет?
Так я еще раз спрашиваю, последний: MVar req resp pattern решает задачу рандеву или нет?

Alexander
10.10.2018
12:54:33
там можно, но все свойства stm типа композабельности ты теряешь

Александр
10.10.2018
12:54:42
Да и пофиг

Alexander
10.10.2018
12:54:56
действительно
зачем писать на haskell

Александр
10.10.2018
12:55:08
Мне она зачем, композабельность, если моя ценность в решении задачи?

Alexander
10.10.2018
12:55:10
зачем знать про что разговариваешь
если блокчейн крутится
ладно этот канал makes me really sick today

Александр
10.10.2018
12:59:23
А зачем пишут на Haskell, если у них все в IO? Некоррекная претензия

Alexander
10.10.2018
13:04:10
норм претензия
IO композится лучше freer, эффектов, трансформеров и прочего
ну и "все в IO" мало кто пишет
нету никаких ограничений чтобы компзиться
проверок тоже лишних нету

Александр
10.10.2018
13:05:15
Так ты собрался запрещать писать на Хаскеле, если что-то у человека не композится, или как тебя понимать?

Google

Alexander
10.10.2018
13:05:40
нет

Александр
10.10.2018
13:05:59
Тогда некорректная претензия.

Alexander
10.10.2018
13:06:04
я второй раз за день очень удивился и решил свернуть с тобой дискуссию
все на IO пишут потому, что все на X у них не получилось

Александр
10.10.2018
13:06:49
Ты админ. И выдвигаешь в этом чате некорректные претензии.

Alexander
10.10.2018
13:07:06
мне кажется мы уже это проходили?

Александр
10.10.2018
13:07:19
Верно, не в первый раз

kana
10.10.2018
13:10:59
поясни плиз, что такое Handle и что за Any
выглядит как какое-то обновление твара с таким-то айди в твар с новым айди и новым значением
но зачем менять айди тваров
если кстати не хочется отвечать про stm, то лучше скажи сразу, а то я ща твой код читаю и вопросов будет много)
а то он не документирован
по ходу дела мб и задокументирую

Александр
10.10.2018
13:14:25
Там треды держат локальную копию данных. Есть процедура, которая позволяет узнать, что переменная изменилась в треде. С помощью как раз этих чисел (это версии). Если изменилась, то нужно узнать перед коммитом, а не изменилась ли она еще и в другом месте. Разница в этих stamp как раз дает всю нужную инфу
И еще будет неплохо, если вдруг вылезут баги. Маловероятно, но возможно

kana
10.10.2018
13:16:28
не-не, что за тип я понял
вопрос был больше - что за поле

Александр
10.10.2018
13:16:38