Disons que j’ai plusieurs fonctions: f :: a -> Maybe a g :: a -> Maybe a h :: a -> Maybe a Et je veux les composer de la manière suivante: Si f retourne Nothing, calcule g. Si g renvoie Nothing, calculez h. Si l’un d’entre eux calcule Just a, arrêtez la chaîne. Et […]
Pourquoi et comment est spécifiquement un Scala Future pas une Monade? Et est-ce que quelqu’un pourrait le comparer à quelque chose qui est une Monade, comme une Option? La raison pour laquelle je pose la question est le Guide du Néophyte de Scala, 8ème partie: Bienvenue dans le futur, de Daniel Westheide, où j’ai demandé […]
J’essaie de définir une nouvelle monade et je reçois une erreur étrange newmonad.hs newtype Wrapped a = Wrap {unwrap :: a} exemple Monad Wrapped où (>> =) (Wrap x) f = fx return x = Wrap x main = do putStrLn “yay” $ ghc –version Le système de compilation Glorious Glasgow Haskell, version 7.10.1 $ […]
Je travaille sur l’implémentation de l’algorithme UCT dans Haskell, ce qui nécessite beaucoup de jonglage de données. Sans entrer dans trop de détails, c’est un algorithme de simulation où, à chaque “étape”, un nœud feuille dans l’arbre de recherche est sélectionné en fonction de certaines propriétés statistiques, un nouveau nœud enfant est construit à cette […]
Toutes les autres monades sont livrées avec une version transformateur, et d’après ce que je sais, l’idée d’un transformateur est une extension générique des monades. Après la construction des autres transformateurs, IOT serait quelque chose comme newtype IOT ma = IOT { runIOT :: m (IO a) } pour lequel je pourrais inventer des applications […]
J’apprends le Haskell et j’essaie de comprendre les Monades. J’ai 2 questions D’après ce que j’ai compris, Monad n’est qu’une autre classe qui déclare des moyens d’interagir avec les données à l’intérieur de «conteneurs», y compris Maybes, Lists et IOs. Il semble astucieux et propre d’implémenter ces 3 choses avec un seul concept, mais en […]
Je viens de lire ce qui suit de typeclassopedia sur la différence entre Monad et Applicative . Je peux comprendre qu’il n’y ait pas d’ join à Applicative . Mais la description suivante me semble vague et je ne pouvais pas comprendre exactement ce que signifie “le résultat” d’un calcul / action monadique. Donc, si […]
Je me demande comment les E / S ont été réalisées à Haskell à l’époque où IO monad n’était toujours pas inventé. Tout le monde connaît un exemple. Edit: Est-ce que les E / S peuvent être faites sans IO Monad dans Haskell moderne? Je préfère un exemple qui fonctionne avec le GHC moderne.
Pouvez-vous prouver que si return a = return b alors a=b ? Quand j’utilise = , je veux dire dans le sens des lois et des preuves, pas dans le sens de la classe Eq . Chaque monade que je connais semble le satisfaire, et je ne peux pas penser à une monade valide qui […]
Chaque fois que quelqu’un promet “d’expliquer les monades“, mon intérêt est piqué, pour être remplacé par la frustration lorsque la prétendue “explication” est une longue liste d’exemples terminés par une remarque désinvolte selon laquelle “la théorie mathématique” idées “est” trop compliqué à expliquer à ce stade “. Maintenant, je demande le contraire. J’ai une solide […]