LINUX.ORG.RU

История изменений

Исправление den73, (текущая версия) :

Хотя, насколько я понял, монада - это по сути переопределяемая «точка с запятой» из Си. Смысл монады в том, что она позволяют абстрагировать процесс порождения побочных эффектов и взять его под контроль. За счёт этого якобы можно реализовать внутри языка транзакции, call/cc, undo и т.п..

Насколько это в реальности возможно и насколько технологически сложно - я пока не выяснил.

Например, я спросил (тему не буду искать), легко ли сделать с помощью монад имитацию языка с исключениями (throw/catch), и оказалось, что на Хаскеле это можно, но нетривиально.

Исходная версия den73, :

Хотя, насколько я у понял, в монада - это по сути переопределяемая «точка с запятой» из Си. Смысл монады в том, что она позволяют абстрагировать процесс порождения побочных эффектов и взять его под контроль. За счёт этого якобы можно реализовать внутри языка транзакции, call/cc, undo и т.п..

Насколько это в реальности возможно и насколько технологически сложно - я пока не выяснил.

Например, я спросил (тему не буду искать), легко ли сделать с помощью монад имитацию языка с исключениями (throw/catch), и оказалось, что на Хаскеле это можно, но нетривиально.