【问题标题】:What does the universe mean?宇宙是什么意思?
【发布时间】:2020-01-19 03:15:48
【问题描述】:

关于函数式编程的文章,很多都提到了宇宙。 我正在阅读 Bartosz Milewski 的《程序员类别理论》一书,他也多次提到宇宙。 问题是,在函数式编程和范畴论的背景下,宇宙意味着什么?

【问题讨论】:

  • 为了更准确的答案,我建议引用 Category Theory for Programmers 中的一段,它以您所想的方式使用“宇宙”。
  • 在 FP 上下文中,我想说它只是指超出纯函数式程序范围的所有内容,即该术语用于隐喻意义。
  • @bob:这通常被称为“环境”或“世界”。 OP所问的宇宙具有精确定义的含义,并且与哲学中的“话语宇宙”的概念有关。所以,在某种意义上,它与你所说的完全相反:它是在程序范围内的一切。

标签: scala haskell functional-programming terminology category-theory


【解决方案1】:

在范畴论的背景下,引入宇宙是为了绕过集合论的悖论。例如,Set 是集合的范畴,所以它的对象对应于集合。此类别中所有对象的集合将是所有集合的集合。但是没有所有集合的集合! Grothendieck 引入了宇宙的概念来解决这个问题。本质上,给定宇宙中所有集合的集合不是该宇宙中的集合——它是下一个更大宇宙中的集合。

在编程中,我们必须处理多态函数,即为所有类型定义的函数。但并非所有类型都形成一个集合。所以像Agda 这样的语言可以让你在给定的宇宙中使用类型。他们称最低宇宙 Set,但 Set 本身是 Set1 的成员,以此类推。

【讨论】:

    猜你喜欢
    • 2015-11-16
    • 2016-02-14
    • 2010-10-24
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    • 2015-08-02
    相关资源
    最近更新 更多