• O_o Haskell есть 2 потока, в одном из них крутится вычисление с состоянием, возможно ли из другого потока как-нибудь красиво это состояние изменить. Я вижу вариант передать через канал функцию изменения состояния, но может есть и другие варианты?

Replies (4)

  • @qnikst, А что мешает менять состояние, не заморачиваясь?
  • @balodja, в первый поток событие приходит. во втором идёт forever $ do { st <- get ; .. }, как его заменить не заморачиваясь я не знаю
  • @qnikst, Использовать STM, например.
  • @balodja, STM внутри state как-то грустно выглядеть будет, а со стейтом, всё красиво до этого момента получалось, т.к. там использовалось StateT (ErrorT IO), что с STM вроде бы не провернуть