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
總結
以上是生活随笔為你收集整理的category theory 简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [4G5G专题-52]:物理层-手机终端
- 下一篇: 【BZOJ4972】小Q的方格纸 前缀和