[fpc-pascal] Procedural parameters

Michael Van Canneyt michael at freepascal.org
Sat Dec 14 12:05:52 CET 2024



On Sat, 14 Dec 2024, Adriaan van Os via fpc-pascal wrote:

>
> Macpascal and Iso pascal have procedural parameters, e.g.
>
> 	function A( function B: double): double;
>
> Is there a $modeswitch to allow this ? I searched "procedure parameter" and 
> "procedural parameter" in the Language Reference, but could not find 
> anything.

As far as I know, the above is not allowed. you must declare the callback type explicitly.

TMyFunc = function : double;

function A(B : TMyFunc): double;

This is in line with 'declare before use': 
procedure parameter lists cannot be used to declare types.

Similarly, you also cannot write:
function A(B : (one,two,three)) : double;

>
> Also, I wonder if "ISOPROGRAMPARAS" in the Programmer's Guide is spelled 
> correctly.

It is, as that is what is used in the compiler: globtype.pas:736

Michael.


More information about the fpc-pascal mailing list