对单子的求索

原文见 Bartosz Milewski 的系列博文

如是我闻:

单子空空,力量无限
用之愈多,所得愈多
谈之愈多,知之愈少

           ——《单子之道》

这样说不知是否夸张,似乎每个懂得了单子的程序员都会写一篇关于它的文章(而且每一篇的开头都是:网络上已经有了许多单子指南,但是……)。原因是对于单子的理解像是一种灵魂感悟,你想与他人分享。

人们对单子的认知如同盲人摸象。你会看到有的人将它描述为容器,有的人将它描述为动作。有的人认为它是用于封装副作用的,也有人将其视为范畴论中自函子的实例。

很难说清楚单子是个什么东西,因为它与我们日常生活中的事物毫无关系。对于面向对象编程中的对象,即使婴儿都知道对象是什么(可以放进嘴里的东西),单子该如何具化?

继续阅读