2012-03-16 21 views
20

Ho recentemente cercato di trovare una buona fonte sulla differenza tra monadi e monoidi.monoid vs monad in Scala

Qualcuno potrebbe fornire un link a una buona risorsa su questo o forse prendere il proprio tempo per elaborare le somiglianze/differenze?

+3

C'è così tanto contenuto su monadi e monoidi che immagino ognuno abbia la sua "buona fonte". La mia triade è: questa [domanda SO] (http://stackoverflow.com/questions/3870088/a-monad-is-just-a-monoid-in-the-category-of-endofunctors-whats-the-problem) , [Monads Are Not metaphors] (http://www.codecommit.com/blog/ruby/monads-are-not-metaphors) di Daniel Spiewak e [Monads are Dominoes] (http://apocalisp.wordpress.com/ 2011/07/01/monads-are-dominoes /) di Rúnar Óli – blouerat

+0

Nella teoria delle categorie "Per ogni categoria C, la categoria [C, C] dei suoi endofuntori ha una struttura monoidale indotta dalla composizione. C, C] è una monade su C. " - da https://en.wikipedia.org/wiki/Monoid_%28category_theory%29. Vedi https://en.wikipedia.org/wiki/Monad_%28category_theory%29 per la definizione di monade nella teoria delle categorie. –

risposta

26

Monads are monoids in the category of endofunctors. Pertanto, una monade è solo un esempio di monoide, che è un concetto più generale.

E, anche se questo potrebbe essere tecnicamente vero, la risposta più semplice è che le monadi e monoidi sono davvero niente come l'altro, e non dovrebbero cercare di imparare la differenza tra loro, ma solo imparare loro. Ci sono tonnellate di materiale su internet, facilmente su Google.

+4

Sorpreso (e intimidisco) come le idee matematicamente correlate possano rivelarsi radicalmente diverse in tutti i termini pratici se applicate ai linguaggi di programmazione. –

+1

Questa risposta in un'altra domanda dal wiki della comunità è uno dei migliori e più concisi http://stackoverflow.com/a/7829607/541202 – Traveler

+0

Più precisamente "Per qualsiasi categoria C, la categoria [C, C] dei suoi endofuntor ha una struttura monoidale indotta dalla composizione Un oggetto monoide in [C, C] è una monade su C. " - da https://en.wikipedia.org/wiki/Monoid_%28category_theory%29. Vedi https://en.wikipedia.org/wiki/Monad_%28category_theory%29 per la definizione di monade nella teoria delle categorie. –