这是什么意思,以及下一个类型的基数是什么,例如:
unit->int
bool->(int->bool)
类型的基数是可能属于该类型的合法值的数量。
对于函数类型,我们通常希望将每个输入返回相同值的两个函数视为“相同的函数”,至少出于基数目的(这称为“扩展相等”)。
我假设这是一个家庭作业问题,并且我将进一步假设不包含不终止或产生未定义值的函数(事实上,它们不会包含在典型的数学处理中) .
表达可以具有有限数量可能值的类型的基数原则上相当容易,因为您可以只给出一个数字作为基数。但是,对于无限基数,从技术上讲,不同种类的无限是有区别的。例如,不可数无穷大“大于”可数无穷大。(老实说,我不确定您是否应该知道这一点,或者您是否应该给出“无限”的答案 - 检查您的课程笔记。)因此,指定哪个无限是个好主意您正在谈论,例如通过引用“更简单”类型的基数。
因此 的基数与unit->int
的基数int
相同(对于您可能选择而不是 的任何其他目标类型也是如此int
),因为类型的值unit->X
必须是“忽略其输入”并返回常量的常量函数类型的值X
。
我希望这个不完整的答案足以让您入门。