Category theory(范畴论)已经深入渗透到不同的学科,产生了深远的影响。对计算机学科,范畴论也有重要的作用,只是,这方面的知识在国内被严重忽视了。实际情况就是,我们大学教的理论实在太少太旧,而不是太多太新。

所谓范畴论,是关于代数结构的代数结构的理论,这是我个人的看法,不一定准确。比如,我们学过代数结构群,那么群的范畴是考虑所有群的一种结构。

范畴论对计算机学科的影响,首先体现在程序理论(不得不说,我们的大学教了编程,但是对程序理论的教育基本是零),这里有一本关于写给程序员的范畴论(Category Theory for Programmers
-CTFP
),推荐给大家。与书配套的视频在网上也可以找到。

实际上,范畴论对计算机专业的影响可以追溯到很遥远的90年代初,比如:B. C. Pierce在91年就有《Basic category theory for computer scientists》。到了21世纪,有了José L. Fiadeiro的《 Categories for Software Engineering》。相信,还可以找到更多。这个帖子里面有很多推荐。

我个人而言,迷上Category是因为在学习抽象代数的时候看了Paolo Aluffi的《Algebra: Chapter 0 》(简记为AC0),通过Category理解抽象代数的若干定义、定理简直令人叫绝。强烈推荐AC0这本书。

最后,想起22年大年初一中国男足输给越南的糗事。事后我曾想,谁让足球有个世界杯呢,如果各行各业都有世界杯,也许最糗的还不见得是中国男足。实际上,我们的大学教育不见得比中国男足好到哪里去,值得大家深思。最后的最后,很多同学都向我表达过,“我不想学这些理论!”。是的,每个人都有选择不学的自由,但是大学却不能因为有学生不想学就不教!

    Bintou 最后,想起22年大年初一中国男足输给越南的糗事。事后我曾想,谁让足球有个世界杯呢,如果各行各业都有世界杯,也许最糗的还不见得是中国男足。实际上,我们的大学教育不见得比中国男足好到哪里去,值得大家深思。最后的最后,很多同学都向我表达过,“我不想学这些理论!”。是的,每个人都有选择不学的自由,但是大学却不能因为有学生不想学就不教!

    👍

    JavaScript 世界中以 React 社区为代表的函数式编程流派也会用到很多这方面的理论,可惜过去没学过,相信如果有所掌握,会有一种拨云见日的效果。

    之前看的是网易云前端团队的一些文章:

    1. 简明 JavaScript 函数式编程——入门篇
    2. 函数式编程进阶:杰克船长的黑珍珠号
    3. 函数式编程进阶:应用函子
    4. 函数式编程进阶:Monad 与 异步函数的组合

    可能理论视角这些博文的表达会有些不严谨之处,希望有更多的理解,所以后来我也是开始看了一点点一楼提到的这本书,优先级关系暂时还没啃完。

    另外还觉得,很多大家说的大学学的 “理论太多” 中的 “理论”,很多时候是一些已经过时的浅层工程实践,因为不匹配当下现实而难以学习,与真正的理论混淆了。

    16 天 后

    © 2018-2025 0xFFFF