Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.237.232.196] |
|
Страницы: (4) « Первая ... 2 3 [4] все ( Перейти к последнему сообщению ) |
Сообщ.
#46
,
|
|
|
Ок, про unsafePerformIO я погорячился, думал, это кое-что другое. Оператор >>= — это монадическая функция bind, да, она в определении монады. do-нотация — просто синтаксический сахар для монад. Монады можно использовать для любых типов вида * => * (т.е. для любых типов, имеющих один тип-параметр). Например для списков. Конкретно тип IO инкапсулирует RealWorld. Инкапсуляция нужна, чтобы не создавать дубликатов мира и прочие неожиданные эффекты. Монада (тайпкласс Monad) выбрана в качестве удобного интерфейса для манипуляций над IO, не более того. Поэтому монады в Хаскелле — это таки прикольная фича, оказавшаяся ещё и удобной в качестве интерфейса к IO, более удобной чем unique types. Вот тут рассказывается, как устроено IO в pure-FP вообще, и в Хаскелле в частности: https://www.youtube.com/watch?v=fCoQb-zqYDI |
Сообщ.
#47
,
|
|
|
Цитата korvin @ Ты, видимо, как раз один из тех, кто перестал страдать от монад и начал ими наслаждаться. Поэтому монады в Хаскелле — это таки прикольная фича, |
Сообщ.
#48
,
|
|
|
Цитата applegame @ Ты, видимо, как раз один из тех, кто перестал страдать от монад Никогда от них не страдал, как и любой, кто ими пользовался. |