プリミティブな再帰関数の組み合わせ


回答:


17

はい。ただし、型指定されたコンビネータを考慮する必要があります。つまり、とK に次の型スキーマ を与える必要があります。K :A → B → A S :(A → B → C )→ (A → B )→ (A → C ) where A 、B、およびCメタ変数は、使用するたびに具体的な型にインスタンス化できます。SK

K:A→B→AS:(A→B→C)→(A→B)→(A→C)
A、BC

N

z:Nsあなたはcc:N→N私ter:N→(N→N)→N→N

私ter私fz=私私ter私f(sあなたはcce)=f(私ter私fe)

私ter:A→(A→A)→N→A
私ter

私ter

pred′=λk。私ter(z、z)(λ(n、n′)。(sあなたはccn、n))kpred=λk。snd(pred′k)

N≃N×N


型付きコンビネータの制限により、これはチューリング完全ではありませんか?型変数は(再帰的に)型変数に対する関数を示すことができますか(たとえば、一部の型DおよびEに対してA = D-> E)
— NietzscheanAI

2
SK

ニール、ありがとう。教会の数字エンコードを介して、S、Kの観点からz、succ、およびiterを表すことができると考えるのは正しいでしょうか?
— NietzscheanAI

0↦0(sあなたはccバツ)↦バツ

@Xoff:前任者関数は、に関してよく知られている線形時間定義を持っていますiter。これはcs.stackexchange.com ...上の質問の対象となる可能性
— コーディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.