Size: a a a

2016 April 15

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
а do-нотация - просто dsl для более удобного конструирования императивных программ
источник

IS

Ilya Smagin in Haskell
источник

IS

Ilya Smagin in Haskell
Вопросы все же остаются
источник

IS

Ilya Smagin in Haskell
Как определено (>>=) для IO? Или для MonadIO?
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
а никак не определено, это встроенная конструкция
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
и ее нельзя определить, т.к. нельзя заглянуть внутрь IO a
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
хотя, если подумать, можно представить имплементацию, в которой IO a - в прямом смысле программа на каком-то конкретном языке
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
тогда можно будет определить (»=) в явном виде
источник

IS

Ilya Smagin in Haskell
Окей. Пусть так. Вся программа - хитро скомпозированное IO(), которое прогоняется
источник

IS

Ilya Smagin in Haskell
Не, ну а как в байт-код то оно компилируется) это и есть "программа на конкретном языке"
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
тогда вся императивщина становится просто библиотекой-комбинатором программ на этом языке
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
компилируется, но implicitly
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
для кода на хаскелл IO a непрозрачна
источник

IS

Ilya Smagin in Haskell
В статье есть отступление
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
а могла бы быть data IO a = Code String
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
я еще не дочитал
источник

IS

Ilya Smagin in Haskell
Что, мол, монадический интерфейс IO вовсе не must
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
верно
источник

V🇺

Vladislav 🇺🇸🚜🇷🇺 in Haskell
просто он удобен
источник

IS

Ilya Smagin in Haskell
Никак не могу обернуть свой мозг вокруг этого
источник