それはどういう意味ですか、また次のタイプのカーディナリティは何ですか?例えば:
unit->int
bool->(int->bool)
型のカーディナリティは、その型の有効な値の数です。
関数型では、通常、すべての入力に対して同じ値を返す 2 つの関数を、少なくともカーディナリティの目的で「同じ関数」と見なしたいと考えています (これは「拡張等価性」として知られています)。
これは宿題だと思います。さらに、終了しない関数や未定義の値を生成しない関数は含まれないと仮定します (実際、それらは典型的な数学的処理には含まれないため)。 .
有限数の可能な値を持つことができる型のカーディナリティを表現することは、カーディナリティとして数値を与えるだけでよいため、原理的にはかなり簡単です。ただし、無限のカーディナリティでは、技術的にさまざまな種類の無限が区別されます。たとえば、可算無限大は可算無限大よりも「大きい」ということです。(正直なところ、あなたがこれを知っていると期待されているのか、それとも単に「無限」と答えるべきなのかはわかりません。コース ノートを確認してください。)あなたが話しているのは、たとえば「より単純な」タイプのカーディナリティを参照することです。
したがって、 のカーディナリティは のカーディナリティとunit->int
同じですint
(また、 の代わりに選択する可能性のある他の宛先タイプについても同じことが言えますint
)。 type の値は、unit->X
必ず「その入力を無視」して定数を返す定数関数でなければならないためです。タイプの値X
。
この不完全な答えが、あなたが始めるのに十分であることを願っています.