category theory 简介

本文感发于Bartosz Milewski的网络新书“Category Theory for Programmers" (免费)

category theory是一门抽象的数学理论。Bartosz试图把它在编程方面的应用,解释给程序员。强烈推荐阅读原作。

还没看过的,或者在犹豫是否要花时间看看,且听我说说先。

引言

给你一袋面粉,让你烤个面包。

你把面粉,酵母,其他配料按比例配好。然后发面,放烤箱。

烤到一半,家里来人了,面包太小,不够吃,要整个大的。怎么办?

烤过面包的都知道,你不能再整一块面,和原来的面团掺和在一起,一块烤。你只能重新再烤一个大的。

编过程的都知道,你程序快编完了,有人提出要加功能(小面包变大面包问题)。或者有人给你块老面,让你加块新面,烤成大面包(掺和面团问题)。这些都是很棘手的问题。

category theory教你如何把各种面团掺和在一起,把面包做大。

1. 让面发着

我们如果把烤面包的类比再扯的远一点。问题的关键是:一旦烘烤的化学过程发生了,就不可逆了,面团很难再撮合到一起了。

要让面团随意组合,揉捏,保持可塑性,必须使其停留在可逆反应阶段。简单说,让面发着

category theory只研究两样东西:面团(object)和揉面(morphism).

category theory有个简单规则:
如果面团形状A,可以先揉成形状B,然后揉成形状C,那么面团一定可以从形状A直接揉成形状C

猜你喜欢

转载自blog.csdn.net/weixin_43801661/article/details/84670359