zoukankan      html  css  js  c++  java
  • 范畴、函子与态射

    "范畴就是使用箭头连接的物体。"

    箭头表示范畴成员之间的关系,正式的名称叫做"态射"(morphism)。范畴论认为,同一个范畴的所有成员,就是不同状态的"变形"(transformation)。通过"态射",一个成员可以变形成另一个成员。

    1.2 数学模型

    既然"范畴"是满足某种变形关系的所有对象,就可以总结出它的数学模型。

    • 所有成员是一个集合
    • 变形关系是函数

    也就是说,范畴论是集合论更上层的抽象,简单的理解就是"集合 + 函数"。

    理论上通过函数,就可以从范畴的一个成员,算出其他所有成员。

    1.3 范畴与容器

    我们可以把"范畴"想象成是一个容器,里面包含两样东西。

    • 值(value)
    • 值的变形关系,也就是函数。

    下面我们使用代码,定义一个简单的范畴。

    https://www.cnblogs.com/feng9exe/p/8295402.html

    我们先记住前面一句话,函子是范畴间的一类映射。我们知道,态射是范畴内对象之间的映射关系。函子与它类似,函子是范畴与范畴间的映射关系,也就是可以通过一个函子,把一个范畴映射到另一个范畴。

    Pasted Graphic.tiff

    上图中有两个范畴 C 和 D,还有一个函子 F,意思是范畴 C 通过函子 F 映射到了D。 

    我们用白话描述一下函子的定义,免得陷入各种希腊字母的公式中。 

    - 范畴 C 中的每一个对象,都可以映射到范畴 D 上的一个对象(这个可以多对一); 

    - 范畴 C 中的每一个态射 f: X->Y ,都可以遇到到范畴 D 上的相应态射 F(f) : F(X)->F(Y), 包括单位态射; 

    - 映射后的态射的复合规则依然被保持,即 f:X->Y, g:Y->Z, 恒有 F(g.f)=F(g).F(f)。

    还有,把一个范畴映射到自身的函子叫做自函子。

    --------------------- 

    作者:henzox 

    来源:CSDN 

    原文:https://blog.csdn.net/henzox/article/details/70216214 

    版权声明:本文为博主原创文章,转载请附上博文链接!

    函子(Functors

    态射是类型之间的映射;函子是范畴之间的映射。可以认为函子是这样一个函数,它从一个容器中取出值, 并将其加工,然后放到一个新的容器中。这个函数的第一个输入的参数是类型的态射,第二个输入的参数是容器。

    // myFunctor :: (a -> b) -> f a -> f b

    意思是“给我一个传入a返回b的函数和一个包含a(一个或多个)的容器,我会返回一个包含b(一个或多个)的容器”

    http://www.cnblogs.com/tolg/p/5258029.html

  • 相关阅读:
    树莓派相关知识
    yum mysql 需要:libsasl2.so.2()(64bit)的解决办法
    python 虚拟环境
    pip 查看某个包有哪些版本并升级
    C# DiagnosticSource and DiagnosticListener
    C# IObservable与IObserver观察者模式
    Visual Studio编译正常,但仍显示红线(Visual studio compiles fine but still shows red lines)
    查看PDB Guid 工具 dumpbin.exe 路径
    VMware vSphere 7.0 安装教程
    gacutil.exe 文件路径
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10131766.html
Copyright © 2011-2022 走看看