Date: Jan 26, 2013 4:58 PM
Author: Bob Hanlon
Subject: Re: Question about Thread & Total

Thread[Total[{{1}, {2, 3}}]] // Trace

shows that there is an initial attempt to evaluate the Total before
the Thread is used . You can quiet the evaluation

Thread[Total[{{1}, {2, 3}}]] // Quiet

{1, 5}

If you use two distinct steps to implement the second method, you can
see why the second method works without complaint. The different
length lists are never used together.

Thread[h[{{1}, {2, 3}}]]

{h[{1}], h[{2, 3}]}

% /. h -> Total

{1, 5}

However, Map is better than Thread for this specific case.

Total /@ {{1}, {2, 3}}

{1, 5}


Bob Hanlon


On Sat, Jan 26, 2013 at 1:37 AM, Themis Matsoukas <tmatsoukas@me.com> wrote:
> I was wondering why the error message in the example below:
>
> Thread[Total[{{1}, {2, 3}}]]
>
> Total::tllen: Lists of unequal length in {{1},{2,3}} cannot be added. >>
>
> {1, 5}
>
> On the other hand, the construction below gives the same answer without complaints:
>
> Thread[h[{{1}, {2, 3}}]] /. h -> Total
>
> {1, 5}
>