 
 
 
 
 
 
Re: Simple List question. HELP.
- To: mathgroup at smc.vnet.net
- Subject: [mg39445] Re: Simple List question. HELP.
- From: Bill Rowe <listuser at earthlink.net>
- Date: Sat, 15 Feb 2003 01:43:21 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On 2/14/03 at 3:24 AM, MarkCWestwood at compuserve.com (Mark Westwood)
wrote:
>Far better to use Append all the time.  Note too that, like many a
>functional programming language Append[list, value] does NOT change
>list !  It returns the list made by appending value to list.  What you
>probably want is:
>list = Append[list, value]
>that is, make an explicit assignment which causes the old version of
>list to be replaced by its new version, with value added.  If you
>continue to Append in this way you'll probably notice a piling up of
>curly brackets.  
No, Append will not cause "a piling up of curly brackets". Try for example
In[1]:=
lst={};
lst=Nest[Append[#,{Random[],Random[]}]&,lst,5];
Depth[lst]
Out[3]=
3
But it is also true building up lists in this manner is not the fastest way to do things.  A faster way to build up a list would be lst = {lst,next element} which will cause "a piling up of curly brackets" For example,
In[4]:=
lst={};
Timing[lst=Nest[Append[#,{Random[]}]&,lst,10000];]
Out[5]=
{25.02 Second,Null}
In[6]:=
lst={};
Timing[lst=Flatten[Nest[{#,Random[]}&,lst,10000]];]
Out[7]=
{0.08 Second,Null}

