Toutes les monades sont-elles des monoïdes ?
Toutes les monades sont-elles des monoïdes ?

Vidéo: Toutes les monades sont-elles des monoïdes ?

Vidéo: Toutes les monades sont-elles des monoïdes ?
Vidéo: Philosophie - Leibniz : qu'est ce qu'une monade ? Suis-je seul dans l'Univers ? 2024, Novembre
Anonim

Une réponse bien dite, peut-être la plus brève qui soit: monade est juste un monoïde dans la catégorie des endofonctionneurs. Satisfait le monoïde axiomes (i. & ii.), un monade peut être vu comme un monoïde qui est un endofunctor avec deux transformations naturelles.

Ici, qu'est-ce qu'un endofunctor Monad ?

Dans la théorie des catégories, une branche des mathématiques, une monade (également triple, triade, construction standard et construction fondamentale) est un endofonctionneur (un foncteur mappant une catégorie à elle-même), ainsi que deux transformations naturelles requises pour remplir certaines conditions de cohérence.

Par la suite, la question est, qu'est-ce qu'un bifoncteur ? UNE bifoncteur (également appelé foncteur binaire) est un foncteur dont le domaine est une catégorie de produits. Il peut être vu comme un foncteur dans deux arguments. Le foncteur Hom en est un exemple naturel; il est contravariant dans un argument, covariant dans l'autre. Un multifoncteur est une généralisation du concept de foncteur à n variables.

Alors, qu'est-ce qu'une Monade en programmation ?

De wikipedia: En fonctionnel la programmation , une monade est une sorte de type de données abstrait utilisé pour représenter les calculs (au lieu de données dans le modèle de domaine). Monades permettre au programmeur pour enchaîner les actions entre elles pour construire un pipeline, dans lequel chaque action est agrémentée de règles de traitement supplémentaires fournies par le monade.

Qu'est-ce qu'une Monade Haskell ?

Dans Haskell une monade est représenté comme un constructeur de type (appelez-le m), une fonction qui construit des valeurs de ce type (a -> ma) et une fonction qui combine des valeurs de ce type avec des calculs qui produisent des valeurs de ce type pour produire un nouveau calcul pour valeurs de ce type (ma -> (a -> mb) -> mb).

Conseillé: