51 votes

Des utilisations créatives de monades

Je suis à la recherche pour l'utilisation créative des monades à apprendre. J'ai lu quelque part que les monades ont été utilisés par exemple dans l'IA, mais le fait d'être une monade débutant, je ne vois pas comment.

Veuillez inclure un lien vers le code source et l'échantillon usages. Aucune norme monades s'il vous plaît.

30voto

Norman Ramsey Points 115730

Phil Wadler a écrit de nombreux articles sur les monades, mais le seul à lire en premier, est un beaucoup de plaisir et sera accessible à n'importe quel programmeur; on l'appelle L'essence de la programmation fonctionnelle. Le document inclut le code source et l'échantillon usages.

Un de mes préférés est la probabilité monade; si vous pouvez trouver Sungwoo Parc'thèse de Doctorat, il a un nombre intéressant exemple des codes de la robotique.

16voto

Herrmann Points 1043

Il y a aussi LogicT (backtracking monade transformateur avec juste des opérations et de la taille).

Il a une bonne valeur pour l'IA des algorithmes de Recherche en raison de ses constructions pour juste disjonctions facilement, par exemple, permettant des calculs de réussir un nombre infini de fois pour être combinées (entrelacé).

Son utilisation est décrite dans l'ICFP'05 papier de Recul, de l'Entrelacement et mettre fin à l'Errance de Transformateurs

13voto

haggai_e Points 2143

vous pouvez trouver des informations intéressantes et avancé monades dans le blog d'Un Voisinage de l'Infini. Je remarque l' Espace Vectoriel Monade, et son utilisation rationnelle des enchevêtrements de description. Malheureusement,je ne pense pas que je le comprends assez bien l'expliquer ici.

10voto

luqui Points 26009

Un de mes préférés des monades est Martin Escardo de recherche de la monade. Il peut être trouvé sur le hackage en infinite-search package.

C'est la monade de "fonctions de recherche" pour l'ensemble des éléments de type a, à savoir l' (a -> Bool) -> Maybe a (trouver un élément dans l'ensemble correspondant à un prédicat donné).

8voto

ADEpt Points 4405

Lire la série d'articles sur les monades utilisé pour modéliser la probabilité et processus probabilistes ici : http://www.randomhacks.net/articles/2007/03/03/smart-classification-with-haskell (suivre les liens pour prev/next pièces)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X