Re: Re: Re: {x},{y} -> {x,y} ?

• To: mathgroup at smc.vnet.net
• Subject: [mg68351] Re: [mg68319] Re: [mg68275] Re: {x},{y} -> {x,y} ?
• From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
• Date: Wed, 2 Aug 2006 05:24:07 -0400 (EDT)
• References: <eaht5b\$or5\$1@smc.vnet.net> <200607310745.DAA26835@smc.vnet.net> <200608011059.GAA09916@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Your last example is not really due to the fact that f is a "function
other than List" but is a feature of threading over single elements.
One can see in very simpler examples, e.g.

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

{{1, 1}, {2, 3}}

Of course successive applications of Thread will now have the
involutive property:

NestList[Thread,{1, {2, 3}},5]

{{1, {2, 3}}, {{1, 2},
{1, 3}}, {{1, 1}, {2, 3}},
{{1, 2}, {1, 3}},
{{1, 1}, {2, 3}},
{{1, 2}, {1, 3}}}

Andrzej Kozlowski

On 1 Aug 2006, at 12:59, Murray Eisenberg wrote:

> This solution (also posted by Bob Hanlon [mg68257] and Oleksandr
> Pavlyk
> [mg68254], and appearing as well in Michael Trott's "The Mathematica
> Guidebook for Programming") is very interesting, because Thread is its
> own functional inverse here:
>
>     x = Range[3]; y = 10*Range[3];
>     Thread[{x, y}]
>     Thread[%]
> {{1, 10}, {2, 20}, {3, 30}}
> {{1, 2, 3}, {10, 20, 30}}
>
> In general, if x and y are any lists of the same length, then:
>
>     Thread @ Thread[List[x, y]] == List[x, y]
> True
>
> (And similarly for n instead of 2 such lists).
>
> But for functions f other than List, it is not necessarily the case
> that
>
>     Thread@Thread[f[x, y]] == f[x, y]
>
> is true. For example:
>
>     f[x_,y_] := {{x[[1]], y[[2]]},y[[1]]}
>     x=Range[3];y=10*Range[3];
>     f[x,y]
>     Thread[f[x,y]]
>     Thread@Thread[f[x,y]]
> {{1,20},10}
> {{1, 10}, {20, 10}}
> {{1,20},{10,10}}
>
> What more can be said about such counterexamples?
>
> Stratocaster wrote:
>> "AngleWyrm" <anglewyrm at yahoo.com> wrote in message
>> news:eaht5b\$or5\$1 at smc.vnet.net...
>>> Hi,
>>> I have two lists, a set of x values and a set of y values. How do I
>>> convert
>>> them to one list of { {x1,y1},{x2,y2} } pairs?
>>>
>>
>> x = {set of X values};
>> y = {set of Y values};
>>
>> Thread[{x,y}]
>
> --
> Murray Eisenberg                     murray at math.umass.edu
> Mathematics & Statistics Dept.
> Lederle Graduate Research Tower      phone 413 549-1020 (H)
> University of Massachusetts                413 545-2859 (W)
> 710 North Pleasant Street            fax   413 545-1801
> Amherst, MA 01003-9305
>

```

• Prev by Date: Re: Re: Using implicit information about row indices
• Next by Date: a Quaternion quadratic level Pisot polynomial
• Previous by thread: Re: Re: {x},{y} -> {x,y} ?
• Next by thread: Re: Tick mark function