with Ada.Text_IO; use Ada.Text_IO; with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; procedure MyApp is generic type element is private; procedure Swap(a, b: in out element); procedure Swap(a, b: in out element) is tmp: element; begin tmp := a; a := b; b := tmp; end Swap; procedure SwapInt is new Swap(Integer); procedure SwapChar is new Swap(Character); i1: Integer := 3; i2: Integer := 5; c1: Character := 'a'; c2: Character := 'd'; begin put(i1); new_line; put(i2); new_line; put(c1); new_line; put(c2); new_line; SwapInt(i1, i2); SwapChar(c1, c2); put(i1); new_line; put(i2); new_line; put(c1); new_line; put(c2); new_line; end MyApp;
[vagrant@localhost ada_lessons]$ gnatmake myapp.adb gcc -c myapp.adb gnatbind -x myapp.ali gnatlink myapp.ali [vagrant@localhost ada_lessons]$ ./myapp 3 5 a d 5 3 d a