本文感发于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 简介相关推荐

  1. UA OPTI570 量子力学30 Degenerate Stationary Perturbation Theory简介

    UA OPTI570 量子力学30 Degenerate Stationary Perturbation Theory简介 回顾:Nondegenerate Stationary Perturbati ...

  2. Category Theory 随笔

    什么可以帮助我们编程? 抽象[Abstrction]:抽象[abstraction]一词来源于希腊语,和减法[substraction]的意思差不多 ,这意味着"摆脱不必要的细节" ...

  3. Category Theory: 01 One Structured Family of Structures

    Category Theory: 01 One Structured Family of Structures 这次看来要放弃了.看了大概三分之一.似乎不能够让注意力集中了.先更新吧. 群的定义 \( ...

  4. 排队论(Queuing theory)简介

    Preliminary Questions 1.What does affect the performance of --a computer system? --a computer networ ...

  5. Basic Category Theory 基本猫论

    什么是范畴?范畴包括: 一组对象, 一组箭头(一般叫做态射morphisms), f:A->B意为f的实体(dom/domain)是A,值域(cod/codomain)是B 箭头运算 ident ...

  6. LASSO与Item Response Theory模型中的隐变量选择

    LASSO与Item Response Theory模型中的隐变量选择 Item Response Theory简介 统计模型 Latent Traits Selection 两参数模型的LASSO ...

  7. Category 特性在 iOS 组件化中的应用与管控

    背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性. Category 就是对装饰模式的一种具体实现.它的主要作用是在不改变原有类的前提下, ...

  8. Category (mathematics)

    In mathematics, a category (sometimes called an abstract category to distinguish it from a concrete ...

  9. Haskell / GHC中的“ forall”关键字有什么作用?

    本文翻译自:What does the `forall` keyword in Haskell/GHC do? I'm beginning to understand how the forall k ...

  10. 计算机开放电子书归档 2018

    97 Things Every Programmer Should Know Gitee 下载 Github 下载 SourceForge 下载 A Java Reference (UCB CS61b ...

最新文章

  1. 子窗体更新父窗体控件内容
  2. 7-20 打印九九口诀表 (C语言)
  3. 到底该如何理解DevOps这个词
  4. 前端运行python代码几种方式_前的解释|前的意思|汉典“前”字的基本解释
  5. python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
  6. java反射的field.get(null)
  7. 百度宣布架构调整,BAT要在To B业务重开一局
  8. eclipse启动发生Failed to load JNI shared library
  9. opencv 在工业中的应用:blob分析
  10. 机械臂拉格朗日动力学怎么用matlab仿真_Matlab 机器人动力学参数辨识仿真(1)单摆的动力学参数辨识...
  11. 样条曲线、样条函数、python绘画样条曲线
  12. VMware-ESXi-6.7.0许可证
  13. 【推荐】无线WiFi信号测试软件WirelessMon
  14. Python猴子补丁
  15. ORACLE 错误 904
  16. ORB-SLAM2代码阅读笔记(十):sim3求解
  17. 港股通接口获取香港交易所上市股票的基本信息
  18. 教程 |「川言川语」:用神经网络RNN模仿特朗普的语言风格
  19. 去掉window.print()去除页眉页脚及网址
  20. 随机画五十个圆python_随的解释|随的意思|汉典“随”字的基本解释

热门文章

  1. salt自定义returner+fluent+mysql进行数据采集
  2. 历年数学界菲尔兹奖及其得主简介
  3. 【juns项目】信用卡数据项目2-2:数据设计
  4. 找回任务栏显示桌面图标及Win7如何显示快速启动栏
  5. 腾讯云数据迁移工具解决方案:华为云迁移到腾讯云
  6. 程序员发布:一张图读懂支撑阿里双十一1682亿的技术架构体系
  7. Linkerd、Consul、Istio、Kuma、Traefik、AWS App服务网格全方位对比
  8. Python3编写炸金花游戏--超详细的讲解!!
  9. 苹果开发者账号申请教程
  10. linux下怎么玩模拟人生4,《模拟人生4》典藏版晶锥灯在非游戏状态下的使用图文教程...