Re: Threading 'Append'
- To: mathgroup at smc.vnet.net
- Subject: [mg62811] Re: [mg62796] Threading 'Append'
- From: Sseziwa Mukasa <mukasa at jeol.com>
- Date: Tue, 6 Dec 2005 00:03:06 -0500 (EST)
- References: <200512051840.NAA21108@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Dec 5, 2005, at 1:40 PM, J Siehler wrote:
> If I run
>
> Thread[Append[{{1,2},{3,4},{5,6}},{a,b,c}]]
>
> I would expect to get
>
> {{1,2,a},{3,4,b},{5,6,c}}
>
> but in fact I get an 'Objects of unequal length' error.
>
> On the other hand,
>
> Thread[foo[{{1,2},{3,4},{5,6}},{a,b,c}]]
> %/.foo->Append
>
> gives what I wanted. Can someone explain what's going on?
It's an evaluation order problem
Thread[Unevaluated[Append[{{1, 2}, {3, 4}, {5, 6}}, {a, b, c}]]]
works. I've run into this problem before, it's even worse if you try
to do
l1 = {{1, 2}, {3, 4}, {5, 6}};
l2 = {a, b, c};
Thread[Unevaluated[Append[l1, l2]]]
Most of the time I just work around it with MapThread which evaluates
the expressions in the order one would prefer.
Regards,
Ssezi
- References:
- Threading 'Append'
- From: "J Siehler" <jsiehler@Gmail.com>
- Threading 'Append'