MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

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



  • Prev by Date: Re: Variables within With statement
  • Next by Date: Re: Printing Mathematica Notebooks and WYSIWYG
  • Previous by thread: Re: Span Set nasty bug
  • Next by thread: Re: Span Set nasty bug