Just nu i M3-nätverket
Gå till innehåll

Monader inom programmering?


.M

Rekommendera Poster

Råkar det finnas en vänlig själ här som kan förklara vad monader egentligen försöker lösa? Jag har läst flera artiklar och sett flera videosar men fortfarande inte riktigt förstått vad det är.

 

Wikipedia beskriver det som...

 

I funktionella programspråk en abstrakt datatyp som representerar olika typer av beräkningar. IO-hantering kan vara implementerat som en monad för att på så sätt hindra att sidoeffekterna av interaktion med omgivningen inte sprider sig ut i den funktionella koden.

Om jag gör io-hantering och skriver till en fil, så spelar det väl ingen roll om jag använder en monad eller inte, filen ändras och det är en sidoeffekt som kan påverka mitt program. Så vad löste monaden för något egentligen?

Länk till kommentar
Dela på andra webbplatser

  • 9 months later...

Sorry för sent svar, men har inte sett tråden tidigare. Monader har gäckat mig också, kanske mest för att jag inte riktigt lyckas greppa dem. Som Douglas Crockford sa:

 

 

In addition to it begin useful, it is also cursed and the curse of the monad is that once you get the epiphany, once you understand - "oh that's what it is" - you lose the ability to explain it to anybody.

 

Måste fråga: Har du kommit till insikt sedan du skapade tråden? Det bästa jag hittat om monader är dessa:

 

Samt denna, en tecknad förklaring!

http://chrisdone.com/posts/monads-are-burritos

Länk till kommentar
Dela på andra webbplatser

Jag hittade den här videon och vid ungefär 44 minuter så börjar han prata om monader. Och istället för att jämföra dem med burritos så använder han Breaking Bad som exempel. En av de mer tydliga exemplen tycker jag.

Länk till kommentar
Dela på andra webbplatser

Bra klipp, även för någon som inte är C#:are! Känns som man i JS gör detta (eller närliggande grejer) rätt så ofta utan att egentligen reflektera så mycket över vilket koncept det egentligen är man använder. Hittade en till från 2007 som var rätt så rolig:

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...