Compile. Not again
- To: mathgroup at smc.vnet.net
- Subject: [mg56470] Compile. Not again
- From: Maxim <ab_def at prontomail.com>
- Date: Tue, 26 Apr 2005 01:34:06 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Here's what I get in version 5.1.0:
In[1]:= f = Compile[{}, Module[{L = {0}}, L[[1]]++; L]]
In[2]:= a = f[]
Out[2]= {1}
In[3]:= b = f[]
Out[3]= {2}
In[4]:= Table[f[], {3}]
Out[4]= {{5}, {5}, {5}}
In[5]:= {a, b}
Out[5]= {{5}, {5}}
Each subsequent call to f uses the modified value of L. This also affects
Table and all the objects involved in assignments such as x = f[] (but not
x = f[][[1]]), including DownValues[Out]. The problem might be related to
deciding whether a and b point to the same shared object.
Maxim Rytin
m.r at inbox.ru
- Follow-Ups:
- Re: Compile. Not again
- From: Andrzej Kozlowski <akoz@mimuw.edu.pl>
- Re: Compile. Not again
- From: yehuda ben-shimol <bsyehuda@gmail.com>
- Re: Compile. Not again