Re: part assigned sequence behavior puzzling
- To: mathgroup at smc.vnet.net
- Subject: [mg105274] Re: part assigned sequence behavior puzzling
- From: dh <dh at metrohm.com>
- Date: Wed, 25 Nov 2009 23:01:51 -0500 (EST)
- References: <heimgd$58a$1@smc.vnet.net>
mkr wrote: > I am puzzled by the following behavior: > > tmp = Range[15] > tmp[[7]] = Sequence @@ Range[2]; > tmp[[7]] = Sequence @@ Range[2]; > tmp[[7]] = Sequence @@ Range[2]; > tmp > > yields > > {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} > {1, 2, 3, 4, 5, 6, 1, 2, 8, 9, 10, 11, 12, 13, 14, 15} > > I would have expected the repeated assignment to have a repeated > effect, thus obtaining > > {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} > {1, 2, 3, 4, 5, 6, 1, 2, 2, 2, 8, 9, 10, 11, 12, 13, 14, 15} > > Where/why am I wrong? > Hi, I asked the same question some time ago. Set(=) has the attribute SequenceHold and does NOT evaluate Sequence. What is assigne to tmp[[7]] is simply Sequence[1,2]. You can convince yourselfe by: ??tmp Only when you e.g. display tmp, Sequence will be evaluated. Daniel