home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / T-Pascal.70 / DEMOS.ZIP / PROCVAR.PAS < prev    next >
Pascal/Delphi Source File  |  1992-10-30  |  1KB  |  46 lines

  1. {************************************************}
  2. {                                                }
  3. { Procedural Types Demo                          }
  4. { Copyright (c) 1985,90 by Borland International }
  5. {                                                }
  6. {************************************************}
  7.  
  8. {$F+}
  9. program ProcVar;
  10. { For an extensive discussion of procedural types, variables and
  11.   parameters, refer to the Programmer's Guide.
  12. }
  13.  
  14. type
  15.   IntFuncType = function (x, y : integer) : integer; { No func. identifier }
  16.  
  17. var
  18.   IntFuncVar : IntFuncType;
  19.  
  20. procedure DoSomething(Func : IntFuncType; x, y : integer);
  21. begin
  22.   Writeln(Func(x, y):5);      { call the function parameter }
  23. end;
  24.  
  25. function AddEm(x, y : integer) : integer;
  26. begin
  27.   AddEm := x + y;
  28. end;
  29.  
  30. function SubEm(x, y : integer) : integer;
  31. begin
  32.   SubEm := x - y;
  33. end;
  34.  
  35. begin
  36.   { Directly: }
  37.   DoSomething(AddEm, 1, 2);
  38.   DoSomething(SubEm, 1, 2);
  39.  
  40.   { Indirectly: }
  41.   IntFuncVar := AddEm;              { an assignment, not a call }
  42.   DoSomething(IntFuncVar, 3, 4);    { a call }
  43.   IntFuncVar := SubEm;              { an assignment, not a call }
  44.   DoSomething(IntFuncVar, 3, 4);    { a call }
  45. end.
  46.