Re: Question
- To: mathgroup at smc.vnet.net
- Subject: [mg74801] Re: Question
- From: dh <dh at metrohm.ch>
- Date: Thu, 5 Apr 2007 04:17:59 -0400 (EDT)
- References: <euvn8c$f64$1@smc.vnet.net>
Hi Peter, I think the following somewhat confusing sentence from the Help can explain your problem:"When expr is a list, expr[[ {a, a, ? } ]] gives a list of parts. In general, the head of expr is applied to the list of parts". I interprete this as: if the expression is not a list, then, after creating the list of parts, the Head of the expression is applied to the List of parts. From this it follows that Ë[[{1, 2, 3}]] is the same as Ë. With Ë[[{1, 2, 3}, 1]], first a list of the first parts of the first level parts is created and then the Head of List is changed to the Head of Ë, that is ë0. Daniel Peter van Summeren wrote: > Hello, > I read in the book about programming from Michael Trott: > Ë = ë0[ë1[ë2[ë3[1, 1, 1], ë3[1, 1, 2], ë3[1, 1, 3]], > ë2[ë3[1, 2, 1], ë3[1, 2, 2], ë3[1, 2, 3]], > ë2[ë3[1, 3, 1], ë3[1, 3, 2], ë3[1, 3, 3]]], > ë1[ë2[ë3[2, 1, 1], ë3[2, 1, 2], ë3[2, 1, 3]], > ë2[ë3[2, 2, 1], ë3[2, 2, 2], ë3[2, 2, 3]], > ë2[ë3[2, 3, 1], ë3[2, 3, 2], ë3[2, 3, 3]]], > ë1[ë2[ë3[3, 1, 1], ë3[3, 1, 2], ë3[3, 1, 3]], > ë2[ë3[3, 2, 1], ë3[3, 2, 2], ë3[3, 2, 3]], > ë2[ë3[3, 1, 3], ë3[3, 2, 3], ë3[3, 3, 3]]]]; > I do: TreeForm[Ë[[{1, 2, 3}]]] === TreeForm[Ë] > and it gives: True > Now comes my question: > TreeForm[Ë[[{1, 2, 3}]][[1]]] is different from TreeForm[Ë[[{1, 2, 3}, 1]]] > > Why does the second expression preserve the head? Which rationale? > My first grasp tells me that it should not. > with friendly greetings, > Peter >