comp.lang.ada
 help / color / mirror / Atom feed
From: "Nick Roberts" <nickroberts@blueyonder.co.uk>
Subject: Expectation of Access Value Equality
Date: Fri, 5 Sep 2003 14:35:40 +0100
Date: 2003-09-05T14:35:40+01:00	[thread overview]
Message-ID: <bja3fi$glkjh$1@ID-25716.news.uni-berlin.de> (raw)

I'm asking for the help of Ada programmers of all levels of experience.

Given the following declarations:

   type A_String is access constant String;

   function "+" (S: String) return A_String is
   begin
      return new String'(S);
   end;

   type A_String_Array is array (Positive range <>) of String;

   procedure Print (A: in A_String_Array) is
      Sentinel: constant A_String := A(A'Last);
      Current: Positive := A'First;
   begin
      loop
         Put_Line( A(Current).all );
         exit when A(Current) = Sentinel;
         Current := Current + 1;
      end loop;
   end;

(a) Would you be surprised by:

   Print( (+"foo",+"bar",+"",+"") );

printing three lines?

(b) Would you be surprised by:

   Print( (+"foo",+"bar",+"hum",+"foo") );

printing one line?

(c) What would you think of an implementation that caused this behaviour?
(What would you think of an implementation that printed four lines in both
cases?)

(d) I'd be grateful for a very brief indication of your level and broad
area(s) of programming experience, in Ada and other languages.

I would be very grateful for as many people replying as possible, preferably
in this news group, but privately if you prefer. Thanks.

--
Nick Roberts
E-mail: nickroberts@blueyonder.co.uk
Jabber: debater@charente.de [ICQ: 159718630]






             reply	other threads:[~2003-09-05 13:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-05 13:35 Nick Roberts [this message]
2003-09-05 13:02 ` Expectation of Access Value Equality chris
2003-09-05 17:56   ` Nick Roberts
2003-09-05 19:10 ` Robert I. Eachus
2003-09-05 19:32 ` Jeffrey Carter
2003-09-05 19:35 ` Simon Wright
2003-09-06  0:25 ` Matthew Heaney
2003-09-06  2:41 ` Steve
2003-09-06 22:01 ` Georg Bauhaus
2003-09-08  9:08 ` Preben Randhol
2003-09-08  9:09   ` Andy
2003-09-09 22:31     ` Nick Roberts
2003-09-10 18:39 ` Mário Amado Alves
2003-09-23 10:46 ` Jacob Sparre Andersen
replies disabled

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