Répondre

1

Arrows, qui sont plus générales que les monades.

0

La méthode la plus simple consiste simplement à contourner l'environnement entre les fonctions. Ceci est souvent utilisé pour enseigner le schéma.

0

Pour moi une manière plus générale est via une paire monad/comonad. Ceci généralise l'approche de la «monade» commune qui devrait être correctement appelée l'approche de la «forte monade», car elle ne fonctionne qu'avec des monades fortes. Le passage à une paire monad/comonad permet de modéliser des effets qui font que certaines variables ne sont plus disponibles. Un exemple où cela est utile est l'effet de la migration d'un thread vers un autre hôte dans un paramètre distribué.

Une autre méthode d'intérêt historique consiste à faire de l'ensemble du programme une fonction mappant un flux/une liste d'événements d'entrée à un flux/une liste d'événements de sortie. Voir: "Comment déclarer un impératif" par Phil Wadler: http://www.cs.bell-labs.com/~wadler/topics/monads.html#monadsdeclare

Questions connexes