Re: Span Set nasty bug
- To: mathgroup at smc.vnet.net
- Subject: [mg123834] Re: Span Set nasty bug
- From: Oliver Ruebenkoenig <ruebenko at wolfram.com>
- Date: Thu, 22 Dec 2011 04:25:27 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201112161054.FAA07002@smc.vnet.net>
On Fri, 16 Dec 2011, roby wrote: > Dear group & Mathematica team > > I am trying to assign a non existing element member of a 2D List. > Due to the coosen Span the element should not exist respectivly not be > assigned. > when the non existing element is queried e.g. {} should be returned > > please take a look on the following assignment: > > In[43]:= t = Table[0, {15}, {15}]; > t[[1 ;; 0, 1 ;; 1]] = 1; > t[[1 ;; 0, 1 ;; 1]] > t[[1, 1]] > > Out[45]= {} > > Out[46]= 0 > > so far so good no element gets assigned and the query works, > after changing 15 to 16 or greater the query still works but the > following happens element [[1,1]] gets a value assigned: > > In[47]:= t = Table[0, {16}, {16}]; > t[[1 ;; 0, 1 ;; 1]] = 1; > t[[1 ;; 0, 1 ;; 1]] > t[[1, 1]] > > Out[49]= {} > > Out[50]= 1 > > Is this a bug or is it a feature ? > > Roby, are you aware that expr[[0]] gives access to the head? Why do you do it this way? The fact that results differ is due to the compilation in Table. You can modify this behavior (which I do not suggest) SetSystemOptions["CompileOptions" -> {"TableCompileLength" -> 1}] I think if you do not want to assign, do not do it. t[[1]] {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} t[[0]] List t[[1 ;; 0]] {} Length[t[[1 ;; 0]]] 0 (* it is somewhat unfortunate that the following does not issue a message *) t[[1 ;; 0, 1]] {} t[[1 ;; 0]][[1]] Oliver
- References:
- Span Set nasty bug
- From: roby <roby.nowak@gmail.com>
- Span Set nasty bug