Mailinglist Archive: yast-devel (77 mails)

< Previous Next >
Re: [yast-devel] Is it allowed to modify one same list via foreach?
  • From: Johannes Meixner <jsmeix@xxxxxxx>
  • Date: Wed, 2 Dec 2009 15:10:42 +0100 (CET)
  • Message-id: <alpine.LNX.2.00.0912021500510.12777@xxxxxxxxxxxxxx>

Hello,

On Dec 2 14:36 Arvin Schnell wrote (shortened):
On Wed, Dec 02, 2009 at 02:22:06PM +0100, Johannes Meixner wrote:

Hello,

is such code allowed:
--------------------------------------------------------------------
list < string > words = [ "Jane", "John" ];
integer index = -1;
foreach( string word,
words,
{ index = index + 1;
words[index] = "Hello " + word;
}
);
--------------------------------------------------------------------
Is in any case the result words == [ "Hello Jane", "Hello John" ] ?

Use maplist:

words = maplist(string word, words, { return "Hello " + word; });

Regardless of maplist/mapmap:
Is my above code using foreach allowed?

My actual case is a bit more complicated like:
-----------------------------------------------------------------------
list < string > words = [ "Jane", "World", "John" ];
integer index = -1;
foreach( string word,
words,
{ index = index + 1;
if( "World" == word )
{ words[index] = "Hello " + word;
}
}
);
-----------------------------------------------------------------------
Is in any case the result words == [ "Jane", "Hello World", "John" ] ?

Assume the list is huge.
Wouldn't then
-----------------------------------------------------------------------
words = maplist( string word,
words,
{ if( "World" == word )
{ return "Hello " + word;
}
else
{ return word;
}
}
);
-----------------------------------------------------------------------
consume unnecessarily much memory and CPU (two lists and
all elements are copied instead of "in place" modification
only where needed via foreach)?


Kind Regards
Johannes Meixner
--
SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany
AG Nuernberg, HRB 16746, GF: Markus Rex
--
To unsubscribe, e-mail: yast-devel+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: yast-devel+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups