Monad和Monoid的定义

根据这篇文章触发的灵感,写了两篇定义性文章:

什么是Monoid?

什么是Monad?

一般网上谈到这两个概念,总是以Haskell或Scala为案例,由于对具体代码的熟悉程度不同,致使人们理解一个复杂概念的同时又引入新的陌生概念,个人认为这不是一种好的学习或分享方式,因此在这两篇中尽量如何本文楼上的原作者一样,试图把看似高深的范畴论用简单的大白话解释一下,范畴其实就是一个集合,只不过对这个集合有一些约束定义,如果熟悉业务建模的人可能对这种思维方式不陌生,经常我们会对抽象的事物进行定义,数学上基本就是用集合概念,实际上从罗素悖论拯救了数学开始,数学离不开集合,对于一个国家社会,个人与社会也是不同的概念,社会是一个集合概念,从集合角度考虑问题和从个人元素角度考虑问题是两种截然不同的思路,如果你平时注重这种区别,你可能会有两种人生观。祝你脑洞大开。
[该贴被banq于2014-11-29 18:57修改过]