MathGroup Archive 2005

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

Search the Archive

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


  • Prev by Date: Can you solve my gravity-maths problem in Mathematica?
  • Next by Date: [JLINK] passing a function reference
  • Previous by thread: Re: Re: Re: Threading 'Append'
  • Next by thread: Re: Threading 'Append'