Articles of monades

Dans quel sens l’OI Monad est-elle pure?

La monade des OI m’a décrit comme une monade d’État où l’État est «le monde réel». Les partisans de cette approche d’IO soutiennent que cela rend les opérations d’IO pures, comme en termes de transparence référentielle. Pourquoi donc? De mon sharepoint vue, il semble que le code à l’intérieur de la monade IO a beaucoup […]

Éviter les ascenseurs avec des transformateurs monad

J’ai un problème auquel une stack de transformateurs monad (ou même un transformateur monad) sur IO . Tout est bon, sauf que l’utilisation de lift avant chaque action est terriblement agaçante! Je soupçonne qu’il n’y a vraiment rien à faire à ce sujet, mais j’ai pensé que je demanderais quand même. Je suis conscient de […]

Des exemples simples pour illustrer Catégorie, Monoïde et Monade?

Je suis très confus avec ces trois concepts. Existe-t-il des exemples simples pour illustrer les différences entre Category, Monoid et Monad? Il serait très utile d’illustrer ces concepts abstraits.

Utilisations créatives des monades

Je cherche des utilisations créatives de monades pour apprendre. J’ai lu quelque part que les monades ont été utilisées par exemple dans l’IA, mais comme je suis une nouvelle novice, je ne vois pas comment. S’il vous plaît inclure un lien vers le code source et des exemples d’utilisation. Aucune monade standard s’il vous plaît.

Quelqu’un at-il déjà rencontré un transformateur Monad dans la nature?

Dans mon domaine d’affaires – back office informatique pour une institution financière – il est très courant qu’un composant logiciel contienne une configuration globale, enregistre ses progrès, ait une sorte de gestion des erreurs / de court-circuit de calcul… peut être modélisé par Reader-, Writer-, Maybe-monads et autres dans Haskell et composé avec des transformateurs […]

Haskell: ne peut pas utiliser “carte putStrLn”?

J’ai une liste de chaînes et j’ai essayé ceci: ls = [ “banana”, “mango”, “orange” ] main = do map PutStrLn list_of_ssortingngs Cela n’a pas fonctionné et je ne comprends pas pourquoi. ghc print-list.hs print-list.hs:3:0: Couldn’t match expected type `IO t’ against inferred type `[IO ()]’ In the expression: main When checking the type of […]

Monads avec Join () au lieu de Bind ()

Les monades sont généralement expliquées à tour de rôle et bind . Cependant, je suppose que vous pouvez également implémenter bind en termes de join (et de fmap ?) Dans les langages de programmation dépourvus de fonctions de première classe, la bind est extrêmement difficile à utiliser. join , par contre, semble assez facile. Cependant, […]

Utilisation de la monade d’état de Haskell une odeur de code?

Dieu je déteste le terme “odeur de code”, mais je ne peux rien penser de plus précis. Dans mon temps libre, je conçois un langage et un compilateur de haut niveau sur Whitespace pour en apprendre davantage sur la construction du compilateur, la conception du langage et la functional programming (le compilateur est écrit en […]

Quand est-il correct d’utiliser un IORef?

Une chose qui m’a toujours dérouté est de savoir si le moment est bien choisi pour utiliser un IORef. Existe-t-il des directives à suivre pour décider d’utiliser ou non un IORef pour une tâche? Quand est-il opportun d’utiliser la monade d’état sur un IORef?

Y a-t-il une monade qui n’a pas de transformateur monad correspondant (sauf IO)?

Jusqu’à présent, chaque monade (qui peut être représentée comme un type de données) rencontrée avait un transformateur monad correspondant ou pouvait en avoir un. Y a-t-il une telle monade qui ne peut pas en avoir une? Ou toutes les monades ont-elles un transformateur correspondant? Par un transformateur t correspondant à monad m je veux dire […]