惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
Blog — PlanetScale
Blog — PlanetScale
博客园 - 【当耐特】
博客园_首页
The GitHub Blog
The GitHub Blog
月光博客
月光博客
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
博客园 - 三生石上(FineUI控件)
D
Docker
Stack Overflow Blog
Stack Overflow Blog
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Apple Machine Learning Research
Apple Machine Learning Research
Vercel News
Vercel News
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
小众软件
小众软件
I
InfoQ
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky

方永、南天紫雲

linux透明代理 技术的边界 停机问题通俗说明 Rust与oracle、redis集群的纠结 学习能力的增长 微信调试的原语 mac外接移动硬盘安装ArchLinux linux的死机问题 linux下全键盘操作 漂亮又好用的bspwm linux本机透明代理 ssh、mosh、autossh linux不能待机又一例 从WordPress切换到Hugo 折腾电脑开机 linux系统QQ新思路 Arch Linux的字体渲染 svn管理之submin OpenWrt自动fucking墙記錄 二维码(qrcode)名片的一些事儿 用lua nginx module搭建一个二维码(qr code)生成器 CentOS 7 安裝註記 php程序連接MySQL时只能127.0.0.1而localhost無法連接的問題 ThinkPad之FAN_ERROR、hi fi聲卡 jetty多端口部署 OpenWrt簡單暴力限網 linux中cron之PATH变量 OpenWrt的WDS無線橋接模式 再敘OpenWrt下的rtl8187無線中繼 sed之模擬tail
理解单子是自函子范畴上的幺半群(一)
zola · 2024-08-29 · via 方永、南天紫雲

A monad is just a monoid in the category of endofunctors.

单子只不过是自函子范畴中的幺半群 这句话在编程领域闻名遐迩,在数学视角描述了单子(monad)是什么。

有很多人或尝试用某种特定的编程语言去阐释,或用数学语言阐释,或二者杂糅之。

看了许多他人的阐释,觉得有必要整理一下,有一个明晰地描述,尽管不够准确、简洁。

单子的起点概念是范畴,范畴的概念其实很简单,就是对象加态射。

对象(object),或者说是东西、事物;

态射是从一个对象到另一个对象的映射,或者说变换,形如 f : a → b,还应具备 结合律和单位态射两个属性。结合律和自然数加法的结合律类同,如1 + (2 + 3) = (1 + 2) + 3,单位态射类似于加法中的y = x,即一个函数,输入和输出相同。那么,任意一个态射和单位态射相结合,得到的仍是这个态射。

由一组对象和这些对象间的态射就构成了范畴。