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}
>