Selon vous, quelle langue pensez-vous serait la meilleure pour la mise en œuvre de monads (Python / Ruby / Lisp) ?, Peut-on me dire quelques utilisations possibles des monads (veuillez donner des exemples), comme des exceptions? P >
Merci d'avance p>
4 Réponses :
Pour des exemples, voir Philip Wadler, "Monad pour la programmation fonctionnelle". P>
par ordre de préférence: p>
Monads par ordre de décroissance de simplicité: p>
Pas d'OCAML ou n'est-ce que c'est indiqué avec F #?
OCAML n'a pas de sucre syntaxique intégré pour monade malheureusement
Scala> f #. Pourquoi? Simple. Dans SCALA, vous pouvez écrire des fonctions opérant sur n'importe quelle monade, que vous ne pouvez pas en F #, car cela nécessite des types plus importants.
Parce que je connais F # mieux :) Mais en F #, je peux écrire certaines fonctions opérant sur n'importe quelle monade avec une résolution de type compacte.
Bonne liste, mais je voudrais aussi mettre Scala au-dessus de F #. J'ajouterais également une liste et définir entre peut-être et le lecteur et la poursuite entre Parser et Async.
Async - est la continuation monade. Liste habituelle déjà mise en œuvre dans toutes les langues prenant en charge les monades. Je viens de le gragot.
Scala appartient plus haut que f # concernant "la langue ... le meilleur pour la mise en œuvre de monads". Scala a un polymorphisme d'ordre supérieur, permettant l'expression de l'abstraction monad. F # ne le fait pas, le refusant.
Vous avez oublié la monade la plus simple de toutes: identité!
Tout sur Monads - Tutoriel légendaire qui répertorie toutes les monades standard et donne beaucoup de exemples du monde réel.
Les monades populaires que vous pouvez rencontrer même dans les langues traditionnelles sont peut-être code>,
list code> et
suite code>.
Certaines personnes pensent également que JQuery lui-même est une monade (comme il suit le Axiomes monadiques a>).
En ce qui concerne le choix de la langue, Haskell et ses dérivés utilisent des monades comme un concept fondamental, cependant, en option, la construction de monads est possible dans de nombreuses langues modernes. Afin de familiariser avec le concept monad, je ferais mieux de choisir la langue que je suis le plus confortable. p>
"Tout sur les monades" semble avoir disparu :( .. le plus proche que je puisse trouver est ici: .wikibooks.org / wiki / haskell / compréhention_monads (ceci est le premier de 6 pages). Si vous voyez l'article original à nouveau, s'il vous plaît faites le moi savoir.
JQuery est presque i> une monade. Sa carte code> est la moitié
mappe code> et demi
concatmap code> dans une sorte de manière déroutante désordonnée. Si vous avez nettoyé sa sémantique correctement, les choses seraient beaucoup plus simples.
"Tout sur les monades" existent. Visitez Horna.org.ua/books/all_about_monads.pdf .
Voici un didacticiel qui utilise le clojure. Les monades sont implémentées dans une bibliothèque. P>
Bien que les monades ne soient pas idiomatiques dans le clojure (dans la plupart des cas, il existe une solution alt pour obtenir le même objectif avec d'autres caractéristiques de langues) et sa implication officielle a beaucoup de hacômes macro, il est possible de les utiliser. J'ajouterais un autre tutoriel: INTENSIVESIFS.NET/TURTORIALS/MONADS_101.HTML , erl.nfshost.com/2010/09/05/Bind- Unité-et-tous-That-2 et ONCLOJURE.COM/2009/06/24/...
J'ai changé le titre parce que la précédente était trompeuse les passants occasionnels pour penser que cette question était argumentative. Pour que la question soit fermée, j'ai édité le titre.