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 简介相关推荐
- UA OPTI570 量子力学30 Degenerate Stationary Perturbation Theory简介
UA OPTI570 量子力学30 Degenerate Stationary Perturbation Theory简介 回顾:Nondegenerate Stationary Perturbati ...
- Category Theory 随笔
什么可以帮助我们编程? 抽象[Abstrction]:抽象[abstraction]一词来源于希腊语,和减法[substraction]的意思差不多 ,这意味着"摆脱不必要的细节" ...
- Category Theory: 01 One Structured Family of Structures
Category Theory: 01 One Structured Family of Structures 这次看来要放弃了.看了大概三分之一.似乎不能够让注意力集中了.先更新吧. 群的定义 \( ...
- 排队论(Queuing theory)简介
Preliminary Questions 1.What does affect the performance of --a computer system? --a computer networ ...
- Basic Category Theory 基本猫论
什么是范畴?范畴包括: 一组对象, 一组箭头(一般叫做态射morphisms), f:A->B意为f的实体(dom/domain)是A,值域(cod/codomain)是B 箭头运算 ident ...
- LASSO与Item Response Theory模型中的隐变量选择
LASSO与Item Response Theory模型中的隐变量选择 Item Response Theory简介 统计模型 Latent Traits Selection 两参数模型的LASSO ...
- Category 特性在 iOS 组件化中的应用与管控
背景 iOS Category功能简介 Category 是 Objective-C 2.0之后添加的语言特性. Category 就是对装饰模式的一种具体实现.它的主要作用是在不改变原有类的前提下, ...
- Category (mathematics)
In mathematics, a category (sometimes called an abstract category to distinguish it from a concrete ...
- Haskell / GHC中的“ forall”关键字有什么作用?
本文翻译自:What does the `forall` keyword in Haskell/GHC do? I'm beginning to understand how the forall k ...
- 计算机开放电子书归档 2018
97 Things Every Programmer Should Know Gitee 下载 Github 下载 SourceForge 下载 A Java Reference (UCB CS61b ...
最新文章
- 子窗体更新父窗体控件内容
- 7-20 打印九九口诀表 (C语言)
- 到底该如何理解DevOps这个词
- 前端运行python代码几种方式_前的解释|前的意思|汉典“前”字的基本解释
- python利用特征进行可视化样本显示_利用Python进行机器学习之特征选择
- java反射的field.get(null)
- 百度宣布架构调整,BAT要在To B业务重开一局
- eclipse启动发生Failed to load JNI shared library
- opencv 在工业中的应用:blob分析
- 机械臂拉格朗日动力学怎么用matlab仿真_Matlab 机器人动力学参数辨识仿真(1)单摆的动力学参数辨识...
- 样条曲线、样条函数、python绘画样条曲线
- VMware-ESXi-6.7.0许可证
- 【推荐】无线WiFi信号测试软件WirelessMon
- Python猴子补丁
- ORACLE 错误 904
- ORB-SLAM2代码阅读笔记(十):sim3求解
- 港股通接口获取香港交易所上市股票的基本信息
- 教程 |「川言川语」:用神经网络RNN模仿特朗普的语言风格
- 去掉window.print()去除页眉页脚及网址
- 随机画五十个圆python_随的解释|随的意思|汉典“随”字的基本解释
热门文章
- salt自定义returner+fluent+mysql进行数据采集
- 历年数学界菲尔兹奖及其得主简介
- 【juns项目】信用卡数据项目2-2:数据设计
- 找回任务栏显示桌面图标及Win7如何显示快速启动栏
- 腾讯云数据迁移工具解决方案:华为云迁移到腾讯云
- 程序员发布:一张图读懂支撑阿里双十一1682亿的技术架构体系
- Linkerd、Consul、Istio、Kuma、Traefik、AWS App服务网格全方位对比
- Python3编写炸金花游戏--超详细的讲解!!
- 苹果开发者账号申请教程
- linux下怎么玩模拟人生4,《模拟人生4》典藏版晶锥灯在非游戏状态下的使用图文教程...