Difference between revisions of "Don't fear the Monad"
Line 37: | Line 37: | ||
=The Slogan: Compositionality is the way to control complexity...(start at 2095)= | =The Slogan: Compositionality is the way to control complexity...(start at 2095)= | ||
Side effects, such as Input/Output, Continuation, ... are | Side effects, such as Input/Output, Concurrency, Continuation, Exceptions, SQL Statements, ... are yuck... and they are complexity... | ||
Monad is a monoidal. Functions under composition is a [[Monoid]], | Monad is a monoidal. Functions under composition is a [[Monoid]], therefore puts you in a position where you cannot make mistake. | ||
{{#ev:youtube|ZhuHCtR3xq8|||| | {{#ev:youtube|ZhuHCtR3xq8|||| | ||
|start=2095&end=2135}} | |start=2095&end=2135}} |
Revision as of 08:58, 27 July 2021
Universality:You can convert any function into a table lookup... , and the function is just data (start at 355)
{{#ev:youtube|ZhuHCtR3xq8|||| |start=355&end=365}}
Monad in terms of Functions, Monoids, Monads...(starting at 455)
{{#ev:youtube|ZhuHCtR3xq8|||| |start=472&end=500}}
Monoid is the way to build complexity from simplicity...(start at 1010)
Simple in Brian's terms means small. I assume this means a smaller vocabulary, in the monoidal case, only one type, so in the size of type vocabulary, it is small. {{#ev:youtube|ZhuHCtR3xq8|||| |start=1010&end=1080}}
Monoid helps to guarantee you to build a software with one and only one type ...(start at 1126)
Create a generic compatibility operator, that allows you to create other functions through composition, ... if one follows this discipline (of being monorail), that you cannot make mistake of creating types that are not the same. {{#ev:youtube|ZhuHCtR3xq8|||| |start=1126&end=1230}}
Monoid helps to guarantee you to build a software with one and only one type ...(start at 1126)
Create a generic compatibility operator, that allows you to create anything in your set of types, ... that are guaranteed to be in the same type, ... functions through composition, ... if one follows this discipline (of being monorail), that you cannot make mistake of creating types that are not the same. {{#ev:youtube|ZhuHCtR3xq8|||| |start=1126&end=1230}}
A Monoid is a collection of things, plus a rule for combining the things, where that (one) rule, obeys some (custom defined) rules ...(start at 1265)
{{#ev:youtube|ZhuHCtR3xq8|||| |start=1267&end=1298}}
The Punch Line: Functions under composition form a Monoid...(start at 1542)
{{#ev:youtube|ZhuHCtR3xq8|||| |start=1542&end=1580}}
As long as types line up, functional composition make sense...(start at 1570)
You don't need to know Category Theory to be fully conversant in this (Monoidal) language of functional composition. {{#ev:youtube|ZhuHCtR3xq8|||| |start=1570&end=1637}}
The Slogan: Compositionality is the way to control complexity...(start at 2095)
Side effects, such as Input/Output, Concurrency, Continuation, Exceptions, SQL Statements, ... are yuck... and they are complexity... Monad is a monoidal. Functions under composition is a Monoid, therefore puts you in a position where you cannot make mistake. {{#ev:youtube|ZhuHCtR3xq8|||| |start=2095&end=2135}}