日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

范畴论讲什么?

Home Forums 《冒号课堂》讨论区 范畴论讲什么?

  • This topic is empty.
Viewing 1 reply thread
  • Author
    Posts
    • #1071
      Todd
      Member

      记得郑老师曾经讲过范畴论(category theory)和程序类型系统是相通的,但是后者要简单得多。我想了解范畴论是讲什么的,尤其是还涉及了哪些方面是一般程序类型系统没有的?

    • #1245
      hui
      Keymaster

      范畴理论是数学中抽象代数(abstract algebra)的一个分支,主要是以最抽象的方式研究数学结构以及它们之间的关系。 每个范畴(category)包括一组对象(object),一组态射(morphism),以及态射之间的合成。 对应于程序中的类型系统,这组对象可以看成某个数据类型所涵盖的所有对象,而态射则可以看成函数,态射合成对应于函数合成。在函数式语言Haskell中,这种对应更加清晰,而且Haskell中的functor和monad都直接来源于范畴理论中对应的概念。

      更详细的可以参考:

      http://en.wikipedia.org/wiki/Category_theory

      http://en.wikibooks.org/wiki/Haskell/Category_theory

      从这里也看出,高级的数学知识对从更抽象和更高层的角度来理解编程是有意义的。但不是所有的人都习惯数学的思维方式,所以对一般程序员我并不推荐深入地学习,这种素养的培养比编程要困难得多。

Viewing 1 reply thread
  • You must be logged in to reply to this topic.
 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)