comp.lang.ada
 help / color / mirror / Atom feed
* Constraints in extended return
@ 2011-03-19 10:42 Simon Wright
  2011-03-19 13:30 ` Robert A Duff
  2011-03-22  2:02 ` Randy Brukardt
  0 siblings, 2 replies; 6+ messages in thread
From: Simon Wright @ 2011-03-19 10:42 UTC (permalink / raw)


This code transposes a matrix:

   function Transpose (M : Complex_Matrix) return Complex_Matrix
   is
   begin
      return Result : Complex_Matrix (M'Range (2), M'Range (1)) do
        for J in M'Range (1) loop
           for K in M'Range (2) loop
              Result (K, J) := M (J, K);
           end loop;
        end loop;
      end return;
   end Transpose;

This is all very well for providing a value where no constraint is
otherwise imposed, for example as an actual in a subprogram call, but
what about the case where there is a prior constraint?

   Input : Complex_Matrix (1 .. 2, 11 .. 12);
   Output : Complex_Matrix (1 .. 2, 1 .. 2);
begin
   Input := (...);
   Output := Transpose (Input);

Is there any way for the extended return to determine the constraints of
the 'target'? I suspect not, but the language in RM6.5 is deep.



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-03-22  8:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-19 10:42 Constraints in extended return Simon Wright
2011-03-19 13:30 ` Robert A Duff
2011-03-19 13:51   ` Dmitry A. Kazakov
2011-03-19 15:55   ` Simon Wright
2011-03-22  2:02 ` Randy Brukardt
2011-03-22  8:28   ` Simon Wright

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox