有关函数式编程的文章,其中很多都提到了Universe。
我正在阅读Bartosz Milewski的著作《程序员的类别理论》,他还多次提到宇宙。
问题是,在函数式编程和范畴论的语境中,宇宙意味着什么?
最佳答案
在范畴论的背景下,为了避开集合论的悖论而引入了宇宙。例如,Set是集合的类别,因此其对象对应于集合。此类别中所有对象的集合将是所有集合的集合。但是没有所有的一套! Grothendieck介绍了宇宙的想法来解决这个问题。本质上,给定Universe中的所有集合的集合不是该Universe中的集合,而是下一个更大Universe中的集合。
在编程中,我们必须处理多态函数,即为所有类型定义的函数。但是所有类型都不构成一个集合。因此,像Agda这样的语言使您可以处理给定Universe中的类型。它们称为最低Universe Set,但Set本身是Set1的成员,依此类推。
关于scala - 宇宙是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57988106/