* Stream_Element_Array and an empty array @ 2001-08-22 13:34 2001-08-22 13:42 ` Samuel Tardieu 2001-08-22 14:22 ` Samuel T. Harris 0 siblings, 2 replies; 13+ messages in thread From: @ 2001-08-22 13:34 UTC (permalink / raw) Hello I would like to sth like this: A : Stream_Elemet_Array; A := <empty array>; I dont know how to write empty array that A'Length = 0. Does anybody know? Godfryd -- | Michal Nowikowski <godfryd@zamek.gda.pl> | Registered Linux User #165183 | http://www.glc.zamek.gda.pl/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 13:34 Stream_Element_Array and an empty array @ 2001-08-22 13:42 ` Samuel Tardieu 2001-08-22 13:56 ` Reivilo Snuved 2001-08-22 14:54 ` Ted Dennison 2001-08-22 14:22 ` Samuel T. Harris 1 sibling, 2 replies; 13+ messages in thread From: Samuel Tardieu @ 2001-08-22 13:42 UTC (permalink / raw) To: comp.lang.ada On 22/08, =?ISO-8859-2?q?=22Micha=B3=@ada.eu.org wrote: | Hello | | I would like to sth like this: | | A : Stream_Elemet_Array; | A := <empty array>; | | I dont know how to write empty array that A'Length = 0. | Does anybody know? Like for any array: A : Ada.Streams.Stream_Element_Array (0 .. -1); A'Length being defined as A'Last - A'First + 1, you will get a zero length. Sam -- Samuel Tardieu -- sam@rfc1149.net -- http://www.rfc1149.net/sam ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 13:42 ` Samuel Tardieu @ 2001-08-22 13:56 ` Reivilo Snuved 2001-08-22 14:19 ` 2001-08-22 14:54 ` Ted Dennison 1 sibling, 1 reply; 13+ messages in thread From: Reivilo Snuved @ 2001-08-22 13:56 UTC (permalink / raw) Samuel Tardieu <sam@rfc1149.net> writes: > Like for any array: > > A : Ada.Streams.Stream_Element_Array (0 .. -1); > > A'Length being defined as A'Last - A'First + 1, you will get a zero length. > A (1 .. 0) is my favourite idiom. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 13:56 ` Reivilo Snuved @ 2001-08-22 14:19 ` 2001-08-22 14:25 ` ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: @ 2001-08-22 14:19 UTC (permalink / raw) W artykule <stk7zw2o60.fsf@aonix.fr>, "Reivilo Snuved" <odevuns@iname.junk.com> napisaďż˝(a): > Samuel Tardieu <sam@rfc1149.net> writes: > >> A : Ada.Streams.Stream_Element_Array (0 .. -1); >> >> A'Length being defined as A'Last - A'First + 1, you will get a zero >> length. ok, but it is variable A array which length is 0; i want to substitute a value; when you have array A with length=5, you do: A := (1, 2, 3, 4, 5); what to do when A's length is 0 A := (); -- doesnt work -- | Michal Nowikowski <godfryd@zamek.gda.pl> | Registered Linux User #165183 | http://www.glc.zamek.gda.pl/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:19 ` @ 2001-08-22 14:25 ` 2001-08-22 14:28 ` Florian Weimer 2001-08-22 14:28 ` David C. Hoos 2001-08-22 15:13 ` Claude SIMON 2 siblings, 1 reply; 13+ messages in thread From: @ 2001-08-22 14:25 UTC (permalink / raw) W artykule <pan.2001.08.22.16.19.49.568.13195@zamek.gda.pl>, "=?ISO-8859-2?q?=22Micha=B3= Nowikowski" <godfryd@zamek.gda.pl> napisaďż˝(a): > > ok, but it is variable A array which length is 0; i want to substitute a > value; > > when you have array A with length=5, you do: A := (1, 2, 3, 4, 5); > > what to do when A's length is 0 > A := (); -- doesnt work in other words: when i've got procedure procedure P (A : Stream_Element_Array); and i want to put 0-long array as an argument -- | Michal Nowikowski <godfryd@zamek.gda.pl> | Registered Linux User #165183 | http://www.glc.zamek.gda.pl/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:25 ` @ 2001-08-22 14:28 ` Florian Weimer 2001-08-22 14:37 ` 0 siblings, 1 reply; 13+ messages in thread From: Florian Weimer @ 2001-08-22 14:28 UTC (permalink / raw) =?ISO-8859-2?q?=22Micha=B3= Nowikowski" <godfryd@zamek.gda.pl> writes: > in other words: when i've got procedure > > procedure P (A : Stream_Element_Array); > > and i want to put 0-long array as an argument P (((1 .. 0) => 0)); Not very pretty, but it works. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:28 ` Florian Weimer @ 2001-08-22 14:37 ` 0 siblings, 0 replies; 13+ messages in thread From: @ 2001-08-22 14:37 UTC (permalink / raw) W artykule <tgu1z0qicc.fsf@mercury.rus.uni-stuttgart.de>, "Florian Weimer" <Florian.Weimer@rus.uni-stuttgart.de> napisaďż˝(a): > >> in other words: when i've got procedure >> >> procedure P (A : Stream_Element_Array); >> >> and i want to put 0-long array as an argument > > P (((1 .. 0) => 0)); > > Not very pretty, but it works. yes it wors thanks to all that have answered -- | Michal Nowikowski <godfryd@zamek.gda.pl> | Registered Linux User #165183 | http://www.glc.zamek.gda.pl/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:19 ` 2001-08-22 14:25 ` @ 2001-08-22 14:28 ` David C. Hoos 2001-08-22 15:13 ` Claude SIMON 2 siblings, 0 replies; 13+ messages in thread From: David C. Hoos @ 2001-08-22 14:28 UTC (permalink / raw) To: comp.lang.ada You do A := (1 .. 0 => <any-value>); The value of <any-value> is immaterial because you're assigning zero elements of that value. ----- Original Message ----- From: <=?ISO-8859-2?q?=22Micha=B3=@ada.eu.org>; <Nowikowski@ada.eu.org>; <" <godfryd@zamek.gda.pl>"@ada.eu.org> Newsgroups: comp.lang.ada To: <comp.lang.ada@ada.eu.org> Sent: Wednesday, August 22, 2001 9:19 AM Subject: Re: Stream_Element_Array and an empty array > W artykule <stk7zw2o60.fsf@aonix.fr>, "Reivilo Snuved" > <odevuns@iname.junk.com> napisaďż˝(a): > > > Samuel Tardieu <sam@rfc1149.net> writes: > > > >> A : Ada.Streams.Stream_Element_Array (0 .. -1); > >> > >> A'Length being defined as A'Last - A'First + 1, you will get a zero > >> length. > > ok, but it is variable A array which length is 0; > i want to substitute a value; > > when you have array A with length=5, you do: > A := (1, 2, 3, 4, 5); > > what to do when A's length is 0 > A := (); -- doesnt work > > -- > | Michal Nowikowski <godfryd@zamek.gda.pl> > | Registered Linux User #165183 > | http://www.glc.zamek.gda.pl/ > _______________________________________________ > comp.lang.ada mailing list > comp.lang.ada@ada.eu.org > http://ada.eu.org/mailman/listinfo/comp.lang.ada > ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:19 ` 2001-08-22 14:25 ` 2001-08-22 14:28 ` David C. Hoos @ 2001-08-22 15:13 ` Claude SIMON 2 siblings, 0 replies; 13+ messages in thread From: Claude SIMON @ 2001-08-22 15:13 UTC (permalink / raw) ""Micha�owikowski\" \"" a �crit : > W artykule <stk7zw2o60.fsf@aonix.fr>, "Reivilo Snuved" > <odevuns@iname.junk.com> napisa�(a): > > > Samuel Tardieu <sam@rfc1149.net> writes: > > > >> A : Ada.Streams.Stream_Element_Array (0 .. -1); > >> > >> A'Length being defined as A'Last - A'First + 1, you will get a zero > >> length. > > ok, but it is variable A array which length is 0; > i want to substitute a value; > > when you have array A with length=5, you do: > A := (1, 2, 3, 4, 5); > > what to do when A's length is 0 > A := (); -- doesnt work > You do nothing, that is : you put no element in A :-) or if you want to do something : A := (1 .. 0 => ...); > > -- > | Michal Nowikowski <godfryd@zamek.gda.pl> > | Registered Linux User #165183 > | http://www.glc.zamek.gda.pl/ ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 13:42 ` Samuel Tardieu 2001-08-22 13:56 ` Reivilo Snuved @ 2001-08-22 14:54 ` Ted Dennison 1 sibling, 0 replies; 13+ messages in thread From: Ted Dennison @ 2001-08-22 14:54 UTC (permalink / raw) In article <mailman.998487810.2223.comp.lang.ada@ada.eu.org>, Samuel Tardieu says... > >On 22/08, =?ISO-8859-2?q?=22Micha=B3=@ada.eu.org wrote: >| Hello >| >| I would like to sth like this: >| >| A : Stream_Elemet_Array; >| A := <empty array>; >| >| I dont know how to write empty array that A'Length = 0. >| Does anybody know? > >Like for any array: > > A : Ada.Streams.Stream_Element_Array (0 .. -1); Keey your eyes open when using this though. I found at least one compiler (*not* Gnat) that doesn't like to perform stream ops on 0 length arrays. That's a bug, but it happened... --- T.E.D. homepage - http://www.telepath.com/dennison/Ted/TED.html home email - mailto:dennison@telepath.com ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 13:34 Stream_Element_Array and an empty array 2001-08-22 13:42 ` Samuel Tardieu @ 2001-08-22 14:22 ` Samuel T. Harris 2001-08-23 8:37 ` Philip Anderson 1 sibling, 1 reply; 13+ messages in thread From: Samuel T. Harris @ 2001-08-22 14:22 UTC (permalink / raw) ""Micha³owikowski\" \"" wrote: > > Hello > > I would like to sth like this: > > A : Stream_Elemet_Array; > A := <empty array>; > > I dont know how to write empty array that A'Length = 0. > Does anybody know? > > Godfryd > As others have shown, ... a : stream_element_array (1..0); ... is the appropriate declaration. However, you have included an assignment to A and appear to want to know what expression will yield such an array. Given that in the above text A is a variable, no assignment is necesary. If you must have an assignment, or an initial expression because it is constant, then you can do the following ... nil : constant stream_element_array (1..0) := (others => 0); ... a := nil; -- Samuel T. Harris, Senior Software Engineer II Raytheon, Aerospace Engineering Services "If you can make it, We can fake it!" ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-22 14:22 ` Samuel T. Harris @ 2001-08-23 8:37 ` Philip Anderson 2001-08-23 14:02 ` Samuel T. Harris 0 siblings, 1 reply; 13+ messages in thread From: Philip Anderson @ 2001-08-23 8:37 UTC (permalink / raw) "Samuel T. Harris" wrote: > <snip> > Given that in the above text A is a variable, > no assignment is necesary. If you must have > an assignment, or an initial expression > because it is constant, then you can > do the following ... > > nil : constant stream_element_array (1..0) := (others => 0); > ... > a := nil; That must the clearest Ada way of obtaining a zero-length array of a particular type; declare an example and give it a suitable name (Nil, Empty_Array, Zero_Length_Array, whatever), since the result of this particular Ada idiom is easier to understand given this clue. It then becomes obvious what you are doing when you pass it as a parameter. -- hwyl/cheers, Philip Anderson Alenia Marconi Systems Cwmbr�n, Cymru/Wales ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Stream_Element_Array and an empty array 2001-08-23 8:37 ` Philip Anderson @ 2001-08-23 14:02 ` Samuel T. Harris 0 siblings, 0 replies; 13+ messages in thread From: Samuel T. Harris @ 2001-08-23 14:02 UTC (permalink / raw) Philip Anderson wrote: > > "Samuel T. Harris" wrote: > > > <snip> > > Given that in the above text A is a variable, > > no assignment is necesary. If you must have > > an assignment, or an initial expression > > because it is constant, then you can > > do the following ... > > > > nil : constant stream_element_array (1..0) := (others => 0); > > ... > > a := nil; > > That must the clearest Ada way of obtaining a zero-length array of a > particular type; declare an example and give it a suitable name (Nil, > Empty_Array, Zero_Length_Array, whatever), since the result of this > particular Ada idiom is easier to understand given this clue. It then > becomes obvious what you are doing when you pass it as a parameter. > Thanks for that. For years (decades) I have made is a habit to always define a nil constant for any interesting type. Even my record types, whose every field declaration has a default initial expression, also gets a nil_type constant. Along those lines, I also define width, image, and value functions so I get easy instrumentation or I/O facilities nearly for free. -- Samuel T. Harris, Senior Software Engineer II Raytheon, Aerospace Engineering Services "If you can make it, We can fake it!" ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2001-08-23 14:02 UTC | newest] Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-08-22 13:34 Stream_Element_Array and an empty array 2001-08-22 13:42 ` Samuel Tardieu 2001-08-22 13:56 ` Reivilo Snuved 2001-08-22 14:19 ` 2001-08-22 14:25 ` 2001-08-22 14:28 ` Florian Weimer 2001-08-22 14:37 ` 2001-08-22 14:28 ` David C. Hoos 2001-08-22 15:13 ` Claude SIMON 2001-08-22 14:54 ` Ted Dennison 2001-08-22 14:22 ` Samuel T. Harris 2001-08-23 8:37 ` Philip Anderson 2001-08-23 14:02 ` Samuel T. Harris
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox