NOTES
procedure Exchange(U, V : in out Elem) is -- See section 12.1 Generic Declarations T : Elem; -- the generic formal type begin T := U; U := V; V := T; end Exchange;
function Squaring(X : Item) return Item is -- See section 12.1 Generic Declarations begin return X*X; -- the formal operator "*" end Squaring;
package body On_Vectors is -- See section 12.1 Generic Declarations
   function Sum(A, B : Vector) return Vector is
      Result : Vector(A'Range); --  the formal type Vector
      Bias   : constant Integer := B'First - A'First;
   begin
      if A'Length /= B'Length then
         raise Length_Error;
      end if;
      for N in A'Range loop
         Result(N) := Sum(A(N), B(N + Bias));
         --  the formal function Sum
      end loop;
      return Result;
   end Sum;
   function Sigma(A : Vector) return Item is
      Total : Item := A(A'First); --  the formal type Item
   begin
      for N in A'First + 1 .. A'Last loop
         Total := Sum(Total, A(N)); --  the formal function Sum
      end loop;
      return Total;
   end Sigma;
end On_Vectors;
Go to the first, previous, next, last section, table of contents.