program recursive; (* Αναδρομικός ορισμός δεδομένων *) type link = ^integer_list; integer_list = record value : integer; next : link; end; (* Αναδρομική διαδικασία *) procedure russian_doll(size : integer); var i : integer; begin write('['); for i := 1 to size do write('-'); writeln(']'); if size > 1 then russian_doll(size - 1); end (* russina_doll *) ; (* Αναδρομική συνάρτηση *) function factorial(n : integer) : integer; begin if n = 0 then factorial := 1 else factorial := n * factorial(n - 1) end (* factorial *); begin writeln(factorial(5)); russian_doll(10); end.
120 [----------] [---------] [--------] [-------] [------] [-----] [----] [---] [--] [-]