Problem lösedirektist regulär (Klasse 3) und läßt sich in einen regulären Ausdruck umwandeln:
Problem reduziere Problem
Problem (reduziere)* lösedirektAls Pseudo-Programm entspricht das der rekursiven Fassung
Wichtig ist, daß hier P, die Beschreibung der Probleminstanz, Wertparameter ist, und daß der rekursive Aufruf genauso wie der Erstaufruf aussieht; dem entspricht die iterative Form:PROCEDURE loese(P: Problem; VAR E: Ergebnis); BEGIN IF NOT direktloesbar(P) THEN P := Teilproblem(P); loese(P, E); ELSE E := loesedirekt(P); END; END loese;
PROCEDURE loese(P: Problem; VAR E: Ergebnis); BEGIN WHILE NOT direktloesbar(P) DO P := Teilproblem(P); END; E := loesedirekt(P); END loese;