1. sequence length allocation
- Posted by Alan Tu <ATU5713 at COMPUSERVE.COM> Aug 05, 1998
- 508 views
I run the following simple program: sequence s s =3D "hell" s[5] =3D 'o' Most of you will immediately recognize that there is an error here, becau= se I allegedly assigned a fifth value to a length 4 sequence. Well, I plead= guilty, but I appeal because this should not be illegal. Sure, I can use= append, but the above syntax seems a lot more straightforward. What woul= d we loose? Also, I still have a initialize every sequence and specify at least an initial length. This is not complete dynamic storage allocation= , to me. At least, I feel there should be a sequence initialized as an indefinite length. In Euphoria, I still have to initialize the sequence, and tell Euphoria what length it should be initially. There are tools to append and prepen= d, but that only masks the truth that we still have to tell Euphoria what th= e length of the sequence is. It seems that if I have a database, with one sequence with each sub-sequence being a record, I could just simply do something like this: s[length(s)+1] =3D new record I feel this is a more direct approach, than append could ever be. = Although, it is possible that C, which Euphoria is written in, forces Euphoria to be like this. Just a thought. Alan =
2. Re: sequence length allocation
- Posted by David Cuny <dcuny at LANSET.COM> Aug 05, 1998
- 482 views
Alan wrote: > sequence s > s = "hell" > s[5] = 'o' Hm. Even I hesistate at that one. I'd issue want the program to warning, and add nothing to the sequence. After all, should: sequence s s = 'foo' s[6] = 'o' append as well, and create filler for s[4] and s[5]? Should the be blanks, or zeros? -- David Cuny
3. Re: sequence length allocation
- Posted by Alan Tu <ATU5713 at COMPUSERVE.COM> Aug 05, 1998
- 489 views
- Last edited Aug 06, 1998
>append as well, and create filler for s[4] and s[5]? Should the be >blanks, >or zeros? All right, how about an indefinite sequence. It just seems that I have t= o specify the length of the sequence, initialize it. Euphoria has routines= to make this a ton less painful to manipulate sequences, but still. Your= example is noted, though. I did consider the possibility of runaway sequences. --Alan =
4. Re: sequence length allocation
- Posted by Daniel Berstein <daber at PAIR.COM> May 15, 1998
- 498 views
-----Original Message----- De: Alan Tu <ATU5713 at COMPUSERVE.COM> Para: EUPHORIA at cwisserver1.mcs.muohio.edu <EUPHORIA at cwisserver1.mcs.muohio.edu> Fecha: Miércoles 5 de Agosto de 1998 10:32 AM Asunto: sequence length allocation >s[length(s)+1] = new record >I feel this is a more direct approach, than append could ever be. >Although, it is possible that C, which Euphoria is written in, forces >Euphoria to be like this. You can achieve the same with the '&' operator: s = s & new_record Perhaps there is a chance to have a &= operator in Euphoria (as well as +=, -=, /=, etc...) Regards, Daniel Berstein daber at pair.com
5. Re: sequence length allocation
- Posted by Hawke <mdeland at NWINFO.NET> Aug 17, 1998
- 501 views
- Last edited Aug 18, 1998
Alan Tu wrote: > I run the following simple program: > sequence s > s = "hell" > s[5] = 'o' > > Most of you will immediately recognize that there > is an error here, because I allegedly assigned a > fifth value to a length 4 sequence. Well, I plead > guilty, but I appeal because this should not be illegal. I agree here. One caveat tho, it should only be allowed for 1 index past length(s). > Also, I still have a initialize every sequence and specify at > least an initial length. This is not complete dynamic storage > allocation, to me. On this note, I disagree. Assigning s={} does not necessarily give "an initial length". Nor do you even need to do that. ex: sequence name puts(SCR,"what is your name?") name = gets(KB) if name[1] = GET_SUCCESS then name = name[2] end if In this example, name is neither initialized NOR given an initial length... looks pretty dynamic to me... shrug > At least, I feel there should be a sequence initialized > as an indefinite length. In Euphoria, I still have to > initialize the sequence, and tell Euphoria what length > it should be initially. errrrrr.... see above? > It seems that if I have a database, with one > sequence with each sub-sequence being a record, > I could just simply do something like this: > s[length(s)+1] = new record > I feel this is a more direct approach than append > could ever be. Now here I agree. With of course, the caveat mentioned above. Just like you can slice S[3..2] and come up {}, you should be able to do the above. Certain routines could be heavily optimized, simplified and easier to read. tnx for listening, --Hawke'
6. Re: sequence length allocation
- Posted by Derek Parnell <dparnell at VIC.BIGPOND.NET.AU> Oct 03, 1998
- 491 views
The problem I have with this is that your intention is not known. If you code... s[5] = 'o' the compiler has to guess between two options, a) You want to extent the sequence, b) You made a mistake with the index number. As b) is a real possibility, the safer way of doing this is to tell the compiler what it is you are trying to do. Maybe something like... s[#5] = 'o' to explicilty and simply tell the compiler that you are extending the sequence and element 5 is to be set to 'o'. Of course, what happens to the elements between the existing last one and the 5th one is a mystery. So maybe even this ... s[#] = 'o' could be used to say "append to the sequence". This way you wouldn't have to know its current length. cheers, Derek Parnell dparnell @ vic.bigpond.net.au Melbourne, Australia -----Original Message----- From: Alan Tu <ATU5713 at COMPUSERVE.COM> To: EUPHORIA at cwisserver1.mcs.muohio.edu <EUPHORIA at cwisserver1.mcs.muohio.edu> Date: Wednesday, August 5 1998 23:32 Subject: sequence length allocation |I run the following simple program: | |sequence s |s = "hell" |s[5] = 'o' | |Most of you will immediately recognize that there is an error here, because |I allegedly assigned a fifth value to a length 4 sequence. Well, I plead |guilty, but I appeal because this should not be illegal. Sure, I can use |append, but the above syntax seems a lot more straightforward. What would |we loose? Also, I still have a initialize every sequence and specify at |least an initial length. This is not complete dynamic storage allocation, |to me. | |At least, I feel there should be a sequence initialized as an indefinite |length. | |In Euphoria, I still have to initialize the sequence, and tell Euphoria |what length it should be initially. There are tools to append and prepend, |but that only masks the truth that we still have to tell Euphoria what the |length of the sequence is. It seems that if I have a database, with one |sequence with each sub-sequence being a record, I could just simply do |something like this: | |s[length(s)+1] = new record | |I feel this is a more direct approach, than append could ever be. |Although, it is possible that C, which Euphoria is written in, forces |Euphoria to be like this. | |Just a thought. | |Alan |