1

В данный момент я в курсе следующих методов учета побочных эффектов в чисто функциональных языках программирования:Методов побочных эффектов в чисто функциональных языках программирования

  • эффект система
  • продолжений
  • уникальные типы
  • монады

монады часто приводят к наиболее эффективным и наиболее общий способ сделать это.

Какие существуют другие методы? Как они сравниваются?

ответ

1

Arrows, которые являются более общими, чем монады.

0

Самый простой способ - просто обходить окружающую среду между функциями. Это часто используется для обучения схеме.

0

Для меня более общий путь осуществляется через пару монад/комонад. Это обобщает общий подход «монады», который следует правильно назвать «сильным монадом», поскольку он работает только с сильными монадами.

Переход к паре monad/comonad позволяет моделировать эффекты, которые приводят к тому, что некоторые переменные больше не доступны. Примером, где это полезно, является эффект переноса потока на другой хост в распределенной настройке.

Дополнительный метод, представляющий исторический интерес, состоит в том, чтобы сделать всю программу функцией, отображающей поток/список входных событий в поток/список выходных событий. См .: «Как заявить императив» Фила Вадлера: http://www.cs.bell-labs.com/~wadler/topics/monads.html#monadsdeclare