Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MODULE procpointer;
- FROM Printf IMPORT printf;
- TYPE
- Callable = PROCEDURE(INTEGER): INTEGER;
- PROCEDURE inc(x: INTEGER): INTEGER;
- BEGIN
- RETURN x + 1;
- END inc;
- PROCEDURE dec(x: INTEGER): INTEGER;
- BEGIN
- RETURN x - 1;
- END dec;
- PROCEDURE runner(VAR x: INTEGER; func: Callable);
- BEGIN
- x := func(x);
- END runner;
- VAR x: INTEGER;
- BEGIN
- x := 0;
- printf("%d\n", x);
- runner(x, inc);
- printf("%d\n", x);
- runner(x, dec);
- printf("%d\n", x);
- END procpointer.
Add Comment
Please, Sign In to add comment