MathGroup Archive 2005

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

Search the Archive

Re: Threading 'Append'


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'