program FuncTest; { An example of how to pass functions as parameters to another procedure (csc). This program comes with no guarrentees and no support. } type TBoolFunc = function: Boolean; TRealFunc = function(X: Real): Real; var RealFunc: TRealFunc; BoolFunc: TBoolFunc; function Con1: Boolean; Far; begin Con1 := True; end; function Con2(X : Real): Real; far; begin Con2 := X * X; end; procedure Sambo(AFunc: TRealFunc); begin WriteLn(AFunc(4):2:2); end; begin BoolFunc := Con1; RealFunc := Con2; WriteLn(BoolFunc); Sambo(RealFunc); end.