{$mode macpas} {Test of anonymous procedure parameters} function AA1 (i: Integer; function BB (a: Integer): Integer ): Integer; begin AA1:= BB(i); end; function CC1 (a: Integer): Integer; begin Writeln('Inside CC1, param is ', a); CC1:= a+a; end; var res: Integer; procedure AA2 (i: Integer; procedure BB (a: Integer)); begin BB(i); end; procedure CC2 (a: Integer); begin Writeln('Inside CC2, param is ', a); res:= a+a; end; begin res:= 0; res:= AA1(42, CC1); if res <> 84 then Halt(1); AA2(27, CC2); if res <> 54 then Halt(1); end.