Rekursive Funktionen in autotool


Hier, wie auch sonst, gilt im Zweifelsfall: RTFC (Read the F..ing Quelltext).

Beispiele

Einige Beispiele für primitiv-rekursive Funktionen sind

plus = Ind 2 [ Proj 1 1 , Sub 3 [ Succ 1, Proj 3 3 ] ]
mal  = Ind 2 [ Zero 1   , Sub 3 [ plus, Proj 3 1, Proj 3 3 ] ]
hoch = Ind 2 [ Sub 1 [ Succ 1, Zero 1 ], Sub 3 [ mal, Proj 3 1, Proj 3 3 ] ]

rest = Sub 2 [ Builtin 2 "minus"
	     , Proj 2 1
	     , Sub 2 [ Builtin 2 "mal"
		     , Proj 2 2
		     , Sub 2 [ Builtin 2 "durch"
			     , Proj 2 1
			     , Proj 2 2 ] ] ]

Syntax

Funktionen beschreiben wir durch Ausdrücke. Diese entstehen aus Grundfunktionen durch Anwendungen von Operatoren.
Zero k
die k-stellige Null-Funktion
Succ 1
die einstellige Nachfolger-Funktion
Proj i j
die Projektion (eines i-Tupels auf die j-te Komponente)

Builtin i "name"
eine i-stellige eingebaute Funktion

Sub i [ h, g1, .. ]
In h werden die Funktionen g1, .. eingesetzt (es entsteht eine i-stellige Funktion)
Ind i [ g, h ]
die i-stellige Funktion, die durch das Induktionsschema (primitive Rekursion) aus der (i-1)-stelligen Funktion g und der (i+1)-stelligen Funktion h entsteht
Min i [ g ]
die i-stellige Funktion, die durch die Minimum-Bildung aus der (i+1)-stelligen Funktion g entsteht
Merke:

Eingebaute Funktionen

Die Funktionen aus Arithmetik und Logik sind bei den Lösungen der meisten Aufgaben als Builtins verfügbar.

Bei einer Aufgabe mit mehreren Teilen (d. h. mehreren zu definierenden Funktionen) sind meist bei der Lösung von Teil i die in den Teilen ungleich oder kleiner i zu definierenden Funktionen als Builtins verfügbar. Sie können damit auch partielle Lösungen vom autotool prüfen lassen.


best viewed with any browser


http://www.informatik.uni-leipzig.de/~joe/ mailto:joe@informatik.uni-leipzig.de