Re: Nested Lists, Definition and Evaluation.
- To: mathgroup at smc.vnet.net
- Subject: [mg59752] Re: Nested Lists, Definition and Evaluation.
- From: "Jens-Peer Kuska" <kuska at informatik.uni-leipzig.de>
- Date: Sat, 20 Aug 2005 03:13:41 -0400 (EDT)
- Organization: Uni Leipzig
- References: <de45o1$quj$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi, Part[] is a bit command that may or may not evaluate it's argument. This is the only way to allow assigments to single objects in a list. Thats why Part[Part[__],_] will not work because the inner part gets evaluated and you can't assign anything to the evaluated expression. You need b[[1, 1, 1, 1]] = 2 that works fine. Regards Jens "Alexander" <beginning.physst at mail.ru> schrieb im Newsbeitrag news:de45o1$quj$1 at smc.vnet.net... | Hello! | | Here is simple example of defining list: | | b = Table[Symbol["a" <> ToString[i] <> ToString[j]], {i, 2}, {j, 2}]; | a11 = IdentityMatrix[2]; | b[[1,1]][[1,1]] | | Output will be number 1. | | Then we type another command: | b[[1,1]][[1,1]]=2 | | wich cause error message. | | If we type ?b the structure of b can be seen: | Global`b | b = {{a11, a12}, {a21, a22}} | | And I wonder, how to change elements of aij from b? It's interesing | question about how mathematica think things and how evaluate them. | | So, the questions are: | 1) Why code above produce error message? | 2) What difference between b[[1,1]][[1,1]] and | b[[1,1,1,1]] notation? | | Here is an example concerning the second question: | This code doesn't produce an error: | | a11 = IdentityMatrix[2]; | b = Table[Symbol["a" <> ToString[ | i] <> ToString[j]], {i, 2}, {j, 2}]; | b[[1, 1, 1, 1]] = 3 | | but this does: | | a11 = IdentityMatrix[2]; | b = Table[Symbol["a" <> ToString[ | i] <> ToString[j]], {i, 2}, {j, 2}]; | b[[1, 1]][[1, 1]] = 3 | | Why? | | Sorry for my obscure speech, and thanks for your answers! |