|
PROCEDURE L(n: INTEGER); (* L -> +RF-LFL-FR+ *) BEGIN IF n > 0 THEN DEC(n); Left; R(n); Forward; Right; L(n); Forward; L(n); Right; Forward; R(n); Left; END; END L; |
Die Ersetzungsregeln können unmittelbar übernommen werden.
| |
Jede der rekursiven Prozeduren erhält dabei einen Parameter
n, der der noch fehlenden Rekursionstiefe entspricht.
| |
Bei n = 0 wird auf die Ausgabe von Anweisungen verzichtet.
| |
Da sich L und R wechselseitig aufrufen, muß eine der
beiden Prozedur vordeklariert werden:
|
PROCEDURE ^ R(n: INTEGER); |
Copyright © 1999, 2004 Andreas F. Borchert, in HTML konvertiert am 28.01.2005 |