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; });

> If it is not allowed, how to copy a list?
> Does
> --------------------------------------------------------------------
> list < string > words = [ "Jane", "John", "Joe" ];
> list < string > copy = words;
> --------------------------------------------------------------------
> result two totally separated lists words and copy
> or does copy contain only a reference which points to words
> so that
> --------------------------------------------------------------------
> remove( copy, 1 );
> --------------------------------------------------------------------
> would actually result copy == words == [ "Jane", "Joe" ] ?

No, a copy is made. AFAIR even in an efficient way using
reference counting.

ciao
  Arvin

-- 
Arvin Schnell, <aschn...@suse.de>
Senior Software Engineer, Research & Development
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
-- 
To unsubscribe, e-mail: yast-devel+unsubscr...@opensuse.org
For additional commands, e-mail: yast-devel+h...@opensuse.org

Reply via email to