Big Bux Chungus
что если это RuleAlg?
Big Bux Chungus
какой для него Free?
Big Bux Chungus
что если это data FreeFoo a = One a | Add a a
Зигохистоморфный
и? cata someAlgebra
Big Bux Chungus
ок, тогда мы полностью согласны, кроме разпараметризации FRule
Big Bux Chungus
и это уже не Free как это обычно понимается
Зигохистоморфный
и это уже не Free как это обычно понимается
я вот пытался показать что все что мы знаем, есть алгебры
ну тут пурса (да и возможно вариант алгебр выражать через тайп классы не ок, но это просто эксперимент)
https://gist.github.com/xgrommx/d6c5f685e4b12e8080caf501b378a52b
кана
@graninas а что такое stml? в чем разница с stm? что буква l значит?
Alexander
Да это просто мое именование. L - от language. По сути, косметическая разница
Апач
Что такое STM?
Alexander
Тут, видимо, вышеуказанный тайп класс для STM можно еще вписать. Не уверен, полезно ли
Alexander
Что такое STM?
Клевая концепция для построения конкурентных моделей данных. На мой взгляд, один из лучших подходов к concurrency
Alexander
как мне реализовать точку рандеву на STM?
Alexander
и помогут ли мне фримонады
Alexander
Alexander
когда 2 треда обмениваются сообщениями атомарно
Alexander
т.е.exchange :: Box a a -> a -> M a
Alexander
Alexander
тред когда вызывает то блокируется
Alexander
другой тоже
Alexander
после обмена у них выходят новые сообщения
Alexander
и они или оба их получили, или оба не получили
Alexander
Mvar request response pattern
Alexander
На STM тоже
Alexander
Решит проблему?
Зигохистоморфный
Alexander
ytn
Alexander
оно принципиально не решается на STM
Alexander
т.к. коммит не может пройти
Alexander
Можно протоколом. Один тред лочит другого через переменную, потом они обмениваются инфой
Alexander
при проверке лога будет изменение той переменной, что ты читал
Alexander
т.е. это кейс, который STM (в реализации без багов) покрыть не может
Alexander
не будет одна транзакция обмен не будет атомарным
Alexander
Я хотел бы про mvar req resp паттерн узнать. Решает или нет?
Alexander
т.е. ты доп протокол только можешь делать
Alexander
mvar должен
Alexander
Alexander
вообще если интересно посмотри в одной из первых статей по STM это разбиралось
Alexander
mvar должен
Тогда и STM тоже, там есть TMVar, и это не обязана быть та же самая транзакция
Alexander
нет
Alexander
Тогда надо уточнить задачу
Alexander
Потому что как я вижу, MVar req resp и STM TMVar req resp работают одинаково
Alexander
А в той в доке, вероятно, опять формалистский подход, где рассматриваетсч STM код с одной единственной транзакцией. А ведь можно делать раздельные
Alexander
раздельные = нету атомарности
Alexander
Вот это утверждение, очевидно, не доказсно
Alexander
Из разряда контр интуитивных
Alexander
*а что подумал кролик никто не узнал
Alexander
Атомарности простым мьютексом можно добиться (при отсутствии эффектов, само собой)
Alexander
Разве нет?
Alexander
Так я еще раз спрашиваю, последний: MVar req resp pattern решает задачу рандеву или нет?
Alexander
там можно, но все свойства stm типа композабельности ты теряешь
Alexander
Да и пофиг
Alexander
действительно
Alexander
зачем писать на haskell
Alexander
Мне она зачем, композабельность, если моя ценность в решении задачи?
Alexander
зачем знать про что разговариваешь
Alexander
если блокчейн крутится
Alexander
ладно этот канал makes me really sick today
Alexander
А зачем пишут на Haskell, если у них все в IO? Некоррекная претензия
Alexander
норм претензия
Alexander
IO композится лучше freer, эффектов, трансформеров и прочего
Alexander
ну и "все в IO" мало кто пишет
Alexander
нету никаких ограничений чтобы компзиться
Alexander
проверок тоже лишних нету
Alexander
Так ты собрался запрещать писать на Хаскеле, если что-то у человека не композится, или как тебя понимать?
Alexander
нет
Alexander
Тогда некорректная претензия.
Alexander
я второй раз за день очень удивился и решил свернуть с тобой дискуссию
Alexander
все на IO пишут потому, что все на X у них не получилось
Alexander
Ты админ. И выдвигаешь в этом чате некорректные претензии.
Alexander
мне кажется мы уже это проходили?
Alexander
Верно, не в первый раз
кана
кана
поясни плиз, что такое Handle и что за Any
выглядит как какое-то обновление твара с таким-то айди в твар с новым айди и новым значением
кана
но зачем менять айди тваров
кана
если кстати не хочется отвечать про stm, то лучше скажи сразу, а то я ща твой код читаю и вопросов будет много)
кана
а то он не документирован
по ходу дела мб и задокументирую