+
Skip to content

Monades...  #2

@yloiseau

Description

@yloiseau

Superbes illustrations 😄

Je trouve cependant que voir les monades comme un conteneur + map + join (ou flatMap/bind) est un peu bloquant pour la suite. En effet, l'analogie trouve vite ses limites quand on regarge Either, IO, Reader/Writer et donc State, et donc aussi les parseurs, les continuations, ou même plus simplement les fonctions (oui, une fonction est aussi une monade).

Un point de vue plus révélateur pour moi est de les voir comme une valeur dans un contexte, le bind appliquant un calcul à la valeur en tenant compte du contexte (d'où le nom, comme le late binding en objet, etc.). Par exemple, pour Either, on applique une fonction / effectue un calcul dans un contexte où l'échec est possible; State, ben... le contexte c'est l'état en question; pour les parseurs, on construit un automate à état/pile, et donc on doit traiter chaque élément dans le contexte de ce qui précède; les continuations capturent leur contexte d'exécution, etc.

Je trouve personnellement que cette manière de voir est plus révélatrice de la nature des monades, et aide mieux à les appréhender.

voilou

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载