並べ替え。
チャーチ数の一般化は、数n
がどこにあるのかということであり、f^n
どこにあるのかは、あるカテゴリーf
の準同型 (ドメインとコドメインが同じオブジェクトである矢印) であり、 「時間自体で構成する」ことを意味します。通常の教会数字は、矢印が関数であるセットのカテゴリに属します。たとえば、とに適用される数字はです。たとえば、の場合は です。f^n
f
n
3
f
x
f(f(f(x)))
f(x) = x + 10
3 f 0
30
カテゴリーのカテゴリーでは、矢印はファンクターです。3
そこでは、いくつかのファンクタf
とオブジェクトx
(たとえば、型) に適用される数字は、再びf(f(f(x)))
です。f
がたとえば型コンストラクタf x = Int => x
である場合、 3 f String
is はInt => Int => Int => String
、3 つの引数を取りInt
、 a を返す関数の型ですString
。
ここで、ファンクターのf
場合、Free f
はによって生成されるフリー モナドf
であり、型のインスタンスはFree f x
単に かx
のいずれかf (Free f x)
です。そのため、に適用されるf(f(f(...(x)))
0 個以上の s の構成であるフォームの型を持ちます。f
x
したがって、「自由モナドは教会数字である」ということではありませんが、自由モナドは何らかのファンクターの型構築であり、そのファンクターの教会数字はその型に埋め込まれています。