например, в типах. throw можно использовать и в других контекстах
кстати, ответ на этот вопрос есть прямо в документации https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Exception.html#v:throwIO
читайте доки, они рулез
Комментарий SPJ [1] > The whole point of throwIO is that it consumes a state token, and that's what sequences it relative to earlier producers of the state token. И документация [2] говорят иначе. Реализация различается лишь в том, что throwIO обернут в IO конструктор. [1]: https://gitlab.haskell.org/ghc/ghc/-/issues/5129 [2]: https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Exception.html#v:throwIO
не вижу противоречия. да, токен позволяет выстраивать IO в цепочку для исполнения. поэтому throwIO бросает именно тогда, когда исполнение того требует. throw бросает именно тогда, когда вычисление того требует. что не так?
Обсуждают сегодня