Types 类型的基数

Types 类型的基数,types,set,cardinality,Types,Set,Cardinality,它意味着什么,以及下一种类型的基数是什么,例如: unit->int bool->(int->bool) 类型的基数是该类型的可能合法值的数量 使用函数类型,我们通常要考虑两个函数,每个函数返回相同的值作为“相同函数”,至少用于基数目的(这称为“扩展相等”)。 我假设这是一个家庭作业问题,我将进一步假设,不终止或产生未定义值的函数不包括在内(事实上,它们不会包括在典型的数学处理中) 表示可能有有限个值的类型的基数在原则上是相当容易的,因为您可以只给出一个数字作为基数。然

它意味着什么,以及下一种类型的基数是什么,例如:

unit->int  

bool->(int->bool)

类型的基数是该类型的可能合法值的数量

使用函数类型,我们通常要考虑两个函数,每个函数返回相同的值作为“相同函数”,至少用于基数目的(这称为“扩展相等”)。 我假设这是一个家庭作业问题,我将进一步假设,不终止或产生未定义值的函数不包括在内(事实上,它们不会包括在典型的数学处理中)

表示可能有有限个值的类型的基数在原则上是相当容易的,因为您可以只给出一个数字作为基数。然而,对于无限基数,从技术上讲,不同种类的无限之间是有区别的。例如,不可数无穷大“大于”可数无穷大。(老实说,我不确定你是否应该知道这一点,或者你是否应该给出一个“无限”的答案——检查你的课程笔记。)因此,最好指定你谈论的是哪一个无限,例如,通过引用“更简单”类型的基数

因此,
unit->int
的基数与
int
的基数相同(对于您可能选择的任何其他目标类型而不是
int
),因为类型
unit->X
的值必须是“忽略其输入”的常量函数并返回类型为
X
的常量值


我希望这个不完整的答案足以让你开始。

@Robin Green:非常感谢,但是第二个呢,我能建议它是2*2*#(int)吗?@Robin Green:这就是问题所在,在我的笔记中我没有关于无穷大的解释,在网络中我找不到合适的信息,我知道int也有32位,所以它可以得到2^32的值?那么第二个呢?“我说得对吗?”菜鸟:不,这不是正确的答案。考虑<代码> int > BOOL ,让我们假设只有10个整数(哈哈)。从int到bool的函数数量肯定会超过20个:事实上,是1024个。所以,当你有一个函数类型时,这不是简单地将两个基数相乘的问题。@rookie:int在某些语言中只有32位(或平台:在C中,它取决于平台,但我可以从语法上判断这不是C!)。但是如果有人告诉你int有32位,那没问题,那么所有关于无穷大的东西都与你的答案毫无关系。@rookie:来自不同的来源。基数的定义可以在维基百科上找到;扩展平等在我的研究中出现了很多(我在计算机科学方面做研究),但我记不起具体的来源;
unit->X
推理是我自己弄明白的。