3 个稳定版本

使用旧的 Rust 2015

1.0.2 2018年7月23日
1.0.1 2018年7月18日

#561 in 科学

MIT 许可证

9KB

Rust 中的范畴论

Build Status Crates.io Docs.rs

a category ferris

入门

我打算让每个小版本大致对应一个文档章节的增加。我将直到到达第二个 Milewski 课程,然后是第三个等,才提升主版本。

注意:这个 crate 更像是一个日志或笔记本,而不是一个功能库;请自行决定是否导入。

© 2018 Damien Stanton

查看 LICENSE 获取详细信息。

Buy Me A Coffee


lib.rs:

或,对系统程序员而言的范畴论探索

a category

本库中的内容源于 程序员范畴论,这是 Bartosz Milewki 持续多年的博客系列。从原始博客文章创建的“书籍”可以在 这里 找到。

crate 健康状况

Build Status

目标

我的意图是通过使用 Rust 提供的内置文档和测试功能,简单地分享我对范畴论的学习经验。我还会进行屏幕录制来探索每个实现,以确保我提交到 crate 中的内容是合理的。我希望通过这样做,其他人可以将这些知识应用到他们在 C++、Go、Java 等语言中的工作中。

目录

CTFP 章节 主题 文章 讲座视频 笔记
1 引言 范畴:组合的本质 动机什么是范畴? idcompose

非代码挑战问题

第 1 章

全球互联网在任何意义上都是一个范畴吗?链接是态射吗?

我会说是的。我们知道网页有类似恒等态射的东西:其 URI/URL。页面之间的链接可能是可组合的(从一个站点 A 到 B 的链接可以通过重定向协议映射到第三个站点 C)。

更新:在与 FP Slack 上的 #categorytheory 频道中的几个人交谈后,我们必须注意,我们指的是定义链接在整个 REST 或 HATEOAS 命令周期中的态射,而不是链接本身。因此,Bartosz 的正确答案取决于我们如何定义 links

Facebook是否是一个范畴,其中人以对象出现,友谊以态射出现?

并非如此,因为社会关系并不总是可以组合的。C是B的朋友,但这并不意味着C一定是A的朋友。

什么时候一个有向图是一个范畴?

如果图 G 有顶点 V 和边 E,并且满足以下条件,则有向无环图(DAG)可以归类为范畴:

  • 图中所有路径都可以连接起来
  • 每个顶点V都有一个边E可以回到自己(从而满足恒等性)

没有运行时依赖