Size: a a a

2020 October 30

JS

Jerzy Syrowiecki in Haskell
в данном случае (>>) aka thenIO, но она делает то же самое
источник

.

. in Haskell
Так >>= инлайнится в кейс.
источник

JS

Jerzy Syrowiecki in Haskell
.
Так >>= инлайнится в кейс.
не успевает, матч сваливается раньше
источник

JS

Jerzy Syrowiecki in Haskell
instance  Monad IO  where
   (>>)      = (*>)

instance Applicative IO where
   (*>)  = thenIO

thenIO :: IO a -> IO b -> IO b
thenIO (IO m) k = ...
источник

JS

Jerzy Syrowiecki in Haskell
throw бросает исключение при попытке вычислить (>>) к следующему принту
источник

JS

Jerzy Syrowiecki in Haskell
проще говоря, нельзя исполнить IO без его вычисления
источник

A

Andrey in Haskell
я пробовал писать на эскелето несколько лет назад, но в какой-то момент остановился, когда сырые запросы стали достигать 70+ строк, а вьюхи лень было прикручивать
источник

A

Andrey in Haskell
сообщения об ошибках эскелето меня тогда ещё пугали, в то время я бы назвал это fancy.. сейчас как-то всё равно
источник

.

. in Haskell
В коре с оптимизациями ghc считает все после первого исключения мертвым кодом и удаляет его.
источник

.

. in Haskell
Тогда в чем разница между throw и throwIO?
источник

JS

Jerzy Syrowiecki in Haskell
.
Тогда в чем разница между throw и throwIO?
например, в типах. throw можно использовать и в других контекстах
источник

JS

Jerzy Syrowiecki in Haskell
.
Тогда в чем разница между throw и throwIO?
кстати, ответ на этот вопрос есть прямо в документации https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Exception.html#v:throwIO
источник

X

XÆA-XII in Haskell
Кто пользовался Yi? Вещь годная?
источник

JS

Jerzy Syrowiecki in Haskell
Jerzy Syrowiecki
кстати, ответ на этот вопрос есть прямо в документации https://hackage.haskell.org/package/base-4.14.0.0/docs/Control-Exception.html#v:throwIO
читайте доки, они рулез
источник

.

. in Haskell
Jerzy Syrowiecki
например, в типах. throw можно использовать и в других контекстах
Комментарий 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
источник

.

. in Haskell
Но импликации всего этого мне не до конца понятны.
источник

AV

Alexander Vershilov in Haskell
Вообще всякий float-out може случиться
источник

А

Анастасия in Haskell
Добрый день! Сразу извиняюсь, что не по теме, но у меня серьёзный опрос))

Хочу узнать, что мотивирует IT-специалистов на работу.

Займёт всего несколько минут, но очень сильно мне поможете)

Если не затруднит – поделитесь, пожалуйста, в опросе (не надо писать, что ссылка подозрительная 🙃 это гугл форма): https://forms.gle/vX3nutJs8FkRHsZp7

Заранее огрооомное спасибо!
источник

AV

Alexander Vershilov in Haskell
типа
foo = error e
bar = error e
----
сделается
common = error e

foo= common
bar = common

ты вызовешь foo, результат "мемоизируется", и при bar сразу буде
источник

.

. in Haskell
Т.е. если аргументом throw передать что-то, что может само исключение бросить, оно может быть вычислено до первого принта и на экран не выведется ничего?
источник