Процедурная директива Forward

Используя Forward-описания (предописания), вы можете делать процедуры или функции известными без фактического определения ее операторной части.

Замечание:

С точки предописания, другие процедуры и функции могут вызывать предописанную подпрограмму, делая возможной взаимную рекурсию.

Где-нибудь после предописания, тело процедуры или функции должно быть определено в соответствии с объявлением, определяющим операторную часть подпрограммы.

При объявлении определения можно опускать таблицу параметров в заголовке процедуры или функции.

Пример:

(* Forward - процедуры *)

Procedure Flip(N : Integer);
Forward;

Procedure Flop(N : Integer);
Begin
	WriteLn('Flop');
	If N > 0 Then Flip(N-1);
End;

Procedure Flip;
Begin
	WriteLn('Flip');
	If N > 0 Then Flop(N-1);
End;