primitiv rekursiv (dont)
This commit is contained in:
parent
dcb721c032
commit
3ba150440c
16
00.md
16
00.md
@ -70,15 +70,21 @@ Konventionen:
|
||||
|
||||
Definition:
|
||||
|
||||
- Nullfunktion $null(n) = 0$
|
||||
- Nullfunktion $null = null(x) = null(x, y) = \dots = 0$
|
||||
- Nachfolgerfunktion $succ(n) = n + 1$
|
||||
- Projektionen $id(n) = n, id_2(n,m) = m, \dots$
|
||||
- Projektionen $id(n) = n, id_1(n,m) = n, id_2(n,m) = m, \dots$
|
||||
- Kompositionen $f(a, g(b))$ (ohne rekursion)
|
||||
+ PR-Aufgebaute Funktionen $f(a, b, c) = g(i(a), j(b))$
|
||||
- **Rekursive Aufrufe** sind möglich, aber **nur**: $f(a, b, c) = f(a-1, b, c)$ (für $a > 0$)
|
||||
+ Dabei gibt es Basisfall $g(b, c)$ für $a = 0$ und Rekursionsfall $h(f(a-1, b, c), a-1, b, c)$
|
||||
- **Rekursive Aufrufe** sind möglich, z.B.: $r(a, b, c) = r(a-1, b, c)$ (für $a > 0$)
|
||||
+ Dabei gibt es **einen** Basisfall $r(0, b, c) = g(b, c)$ für $a = 0$
|
||||
+ und **einen** Rekursionsfall $r(a+1,b,c) = h(r(a, b, c), a, b, c)$,
|
||||
+ wobei man nur $g$ und $h$ selbst wählen kann, nicht deren Argumente (die sind gegeben wie oben, man kriegt *nur* den
|
||||
rekursiven Wert für $r(a-1,b,c$)$ in $h$ und sonst keinen! Aber Eingaben dürfen weggelassen werden)
|
||||
+ wobei $g$ und $h$ Primitiv Rekursiv sein müssen
|
||||
+ *Wir* schreiben beim Rekursionsfall (damit man es nicht so leicht falsch machen kann) $r(a+1, b, c)$, wobei nur *ein* $+1$, und auch *nur* $+1$, erlaubt ist
|
||||
+ Beispiel: $add(0, x) = x, \quad add(y+1, x) = succ(add(y,x))$ ist als PR: $g(x) \; : \; g = id, \quad h(add(y,x), y, x) \; : \; h = succ \circ id_1$
|
||||
|
||||
ES IST SO SKUFFED DEFINIERT, MACH IMMER! EIN LOOP PROGRAMM
|
||||
ES IST SO SKUFFED, MACH IMMER! EIN LOOP PROGRAMM
|
||||
|
||||
## µ-Rekursiv
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user