Help:Programming Example Prototypes: Difference between revisions

Line 97:
''When using a compiler, but without illustrative text:
 
==[[Your Language HereAda]]==
[[Category:Your Language Here]]
'''Compiler:''' [[Your Compiler HereGnat]] (Your versionGPL here2005)
[[Category:YourGNAT CompilerGPL Here2005]]
 
with Ada.Text_Io;
Some code.
with Ada.Integer_text_IO;
Notice how each line begins with at least one space.
Multiple spaces are fine; Please use proper indentation in your code.
 
procedure Call_Back_Example is
----
-- Purpose: Apply a callback to an array
 
-- Output: Prints the squares of an integer array to the console
''When using an interpreter, with illustrative text:
-- Define the callback procedure
procedure Display(Location : Positive; Value : Integer) is
begin
Ada.Text_Io.Put("array(");
Ada.Integer_Text_Io.Put(Item => Location, Width => 1);
Ada.Text_Io.Put(") = ");
Ada.Integer_Text_Io.Put(Item => Value, Width => 1);
Ada.Text_Io.New_Line;
end Display;
-- Define an access type matching the signature of the callback procedure
type Call_Back_Access is access procedure(L : Positive; V : Integer);
-- Define an unconstrained array type
type Value_Array is array(Positive range <>) of Integer;
-- Define the procedure performing the callback
procedure Map(Values : Value_Array; Worker : Call_Back_Access) is
begin
for I in Values'range loop
Worker(I, Values(I));
end loop;
end Map;
-- Define and initialize the actual array
Sample : Value_Array := (5,4,3,2,1);
begin
Map(Sample, Display'access);
end Call_Back_Example;
 
==[[Your Language Here]]==
Anonymous user