@haskellru

Страница 1511 из 1551
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
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
Что такое STM?
software transactional memory

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

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

и помогут ли мне фримонады

Александр
10.10.2018
12:41:07
как мне реализовать точку рандеву на STM?
Я не знаю, что это (мож, потом загуглю)

Alexander
10.10.2018
12:41:31
когда 2 треда обмениваются сообщениями атомарно

т.е.exchange :: Box a a -> a -> M a

Александр
10.10.2018
12:42:06
когда 2 треда обмениваются сообщениями атомарно
Расшифруй, что здесь атомарность

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
оно принципиально не решается на STM
Не требуется же, чтобы это была одна единственная транзакция?

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

kana
10.10.2018
12:47:14
Да это просто мое именование. L - от language. По сути, косметическая разница
а UStamp это просто UID или это какой-то реальный временной штамп или еще какой-то штамп?

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

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

mvar должен

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 как раз дает всю нужную инфу

И еще будет неплохо, если вдруг вылезут баги. Маловероятно, но возможно

data TVarHandle = TVarHandle OrigUStamp UpdatedUStamp Any
Any - для хранения произвольного типа переменной в мапе

kana
10.10.2018
13:16:28
не-не, что за тип я понял

вопрос был больше - что за поле

Страница 1511 из 1551